Пт июн 15, 2012 20:14:32
...
brcs Start ;
...
...
Change:
in store, PortD ; обновим значение
dec counter ;
brne LowLoop ;
ldi temp, 0x0F ;
ldi temp2, 0x00 ;
cpi delay1, 0xA0 ;
cpc delay2, temp ;
cpc delay3, temp2 ;
brcs Start ; если да, переходим к метке
ldi temp, 0x00 ;
ldi temp2, 0x09 ;
ldi temp3, 0x3D ;
clr lowerbyte ;
clr upperbyte ;
...
Пт июн 15, 2012 20:34:04
Пт июн 15, 2012 20:38:55
...
brcc PC + 2
rjmp Start
...
Пт июн 15, 2012 20:46:26
Пт июн 15, 2012 20:47:13
ILYAUL писал(а):Что за книга?
Пт июн 15, 2012 20:57:57
...
brcc Label
rjmp Start
Label:
...
Пт июн 15, 2012 21:02:52
brcs Start ; если да, переходим к метке
Пт июн 15, 2012 21:08:51
ILYAUL писал(а):
- Код:
brcs Start ; если да, переходим к метке
Там комментарии разнятся с действием
brcs label - проверяет флаг переноса (С) и переходит если он установлен.
brcc PC + 2 ;
rjmp Start ;
Пт июн 15, 2012 21:17:57
Пт июн 15, 2012 21:19:54
Пт июн 15, 2012 21:21:26
DX168B писал(а):Млин. Чет я тупанул маленько.
В принципе да. Можно и так, RJMP достает дальше.
В книге проверяют, установлен ли флаг С в регистре SREG, и если установлен, то переход к началу программы.
Мы меняем условие. Проверяем состояние флага на сброс и если флаг сброшен, перепрыгиваем переход к началу и идем далее по программе.
А если флаг будет установлен, то условие не выполнится и произойдет переход к началу программы (метка Start)
Сб июн 16, 2012 19:43:42