Код: Выделить всё
CP R16,R20Код: Выделить всё
CP R16,R20Да нет, уважаемый akl, сдается мне что bondyara имел ввиду другое. А вот насчет абсурда соглашусь, то люди в одних магических цифрах пишут, чуть не в маш. коде, то пытаются из макросов новый язык программирования создать.akl писал(а):CP R16,R20
Поясните мысль искажения регистра.bondyara писал(а):При совпадении получится MOV R20,R20.
Мало того, что бесполезная команда, она еще и искажает значение регистра
По крайней мере, в Протеусе операция MOV Rn, Rn портит значение.Z_h_e писал(а):Поясните мысль искажения регистра.
Афффигеть.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 RESETСобираю в отладочной. Ну и беспаечная макетка, куда же без нее? Просто иногда быстрее посмотреть в Протеусе, работает или нет, а потом уже...dimmer писал(а):Когда же вы закопаете Протеус? Макетка рулит.
LCD вполне реальный. Виртуальный порт для вывода данных. Назначением вирт. порта как раз и является указание какой бит на какую ногу отправлять.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Аналогично. Впрочем, завести встроенный редактор кода мне не удалось и под winXP, win7, да не больно-то он и нужен.У меня не просто Протеус, а Протеус под Wine в Linux
Кстати, под Wine баг - невозможно редактировать код, компилировать. Отладка с готовым obj-файлом работает.
Где это используется, например? Пока только изучаю (время от времени). По мне, схема устройства определяет куда и что. Так что пока вирт. порты создаю на этапе компиляции макросами, определениями, добавляю необходимые функции по условиям препроцессора.COKPOWEHEU писал(а):выбор куда же значение будет записано на самом деле осуществляется на этапе выполнения и может быть изменен во время работы.
Это не глюк. Так и должно быть.Z_h_e писал(а):Кстати из глюков протеуса на avr заметил пока два... Неправильно устанавливаются флаги источника сброса, при записи 1 флаг устанавливается, при записи 0 сбрасывается. Что интересно, второй глюк присутствует и в атмел студио.