Афффигеть.akl писал(а):bondyara писал(а):... в Протеусе операция MOV Rn, Rn портит значение.
да, дела ... нужно срочно ревизию АВРов делать, мож и остальные полсотни команд что-нибудь где-нибудь портють
Афффигеть.akl писал(а):bondyara писал(а):... в Протеусе операция MOV Rn, Rn портит значение.
Код: Выделить всё
RESET: //
ldi R20,0xFF
out DDRB,R20
andi R20,0x55
mov R20,R20
OUT PORTB,R20
rjmp RESETКод: Выделить всё
RESET: //
ldi R20,0xFF
out DDRB,R20
andi R20,0x55
mov R20,R20
bst R20,0
bld R20,1
OUT PORTB,R20
rjmp RESETdimmer писал(а):Когда же вы закопаете Протеус? Макетка рулит.
COKPOWEHEU писал(а):А не секрет зачем нужен вывод на виртуальный LCD? Может проще макросами указать порты, к которым подключен реальный или написать слой абстракции?
Z_h_e писал(а):Проверил нижеследующий код в шпротеусе...

Я имел в виду что-то вродеLCD вполне реальный. Виртуальный порт для вывода данных. Назначением вирт. порта как раз и является указание какой бит на какую ногу отправлять.
Код: Выделить всё
#define LCD_D0 B,0
#define LCD_D1 B,1
#define LCD_D2 B,2
#define LCD_D3 B,3
#define LCD_RS B,4
#define LCD_E B,5У меня не просто Протеус, а Протеус под Wine в Linux
Кстати, под Wine баг - невозможно редактировать код, компилировать. Отладка с готовым obj-файлом работает.
COKPOWEHEU писал(а):выбор куда же значение будет записано на самом деле осуществляется на этапе выполнения и может быть изменен во время работы.
Это не глюк. Так и должно быть.Z_h_e писал(а):Кстати из глюков протеуса на avr заметил пока два... Неправильно устанавливаются флаги источника сброса, при записи 1 флаг устанавливается, при записи 0 сбрасывается. Что интересно, второй глюк присутствует и в атмел студио.
Ну вот, глюк оказался кривыми ручкамиakl писал(а):Это не глюк. Так и должно быть.
bondyara писал(а):У меня не просто Протеус, а Протеус под Wine в Linux
Кстати, под Wine баг - невозможно редактировать код, компилировать.
ptr128 писал(а):Собственно говоря именно из-за этого XP в VirtualBox у меня выиграла тендер )
Имелся в виду регистр, в котором запоминается причина сброса контроллера. У tiny2313 это регистр MCUSR у mega8 MCUCSR.BOB51 писал(а):Ну насчет флагов и их сброса... Не так все однозначно...Воть, к примеру возьмем attiny2313 и флаги таймеров...Конкретно регистр TIFR...И попытаемся сбросить один из двух установившихся флагов в разных таймерах (не автоматом по исполнении прерывания, а вручную)...