Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
; входной аргумент - флаг C
; C=0 - кнопка не нажата
; С=1 - кнопка нажата
key_sbr:
ldd r17, z+(t0is-flashaddr)
andi r17, 0x06
brne key_sbr_ret
ldd r17, z+(keycntr-flashaddr)
brcs key_sbr_on
; в "живом чипе" на key_sbr_on никогда не попадаем
; входной аргумент - флаг C
; C=0 - кнопка не нажата
; С=1 - кнопка нажата
key_sbr:
in r17, SREG
push r17
ldd r17, z+(t0is-flashaddr)
andi r17, 0x06
pop r17
brne key_sbr_ret
out SREG, r17
ldd r17, z+(keycntr-flashaddr)
brcs key_sbr_on
; если SREG сохранять - то работает
В доке на на команду andi напротив флага С стоит прочерк (якобы не изменяется), проверил на симуляторе AVR Studio 4.13 - С не изменяется после andi.
Сижу и офигеваю.