Кнопка проверки AVR
Мне нужно проверить, какая кнопка была нажата, и сравнить ее с функцией. Например, если нажата кнопка 0($01), программа сравнит ее с OP, 3, и если оба условия верны, программа запустится снова (init), в противном случае, если одно из условий ложно, программа будет зациклена. снова через подпрограмму. На данный момент он ничего не делает, он должен сравнить нажатие кнопки, но, похоже, нет. Пока я сделал это:
;$01 == XOR button, $02 == NOR button, $04 == OR button, $08 == NAND button, $10 == AND button
button_pressed:
in temp2, PIND
xor_pressed:
cpi OP,3
cpi temp2, $01
brne button_pressed
rjmp init
nor_pressed:
cpi OP,4
cpi temp2,$02
brne button_pressed
rjmp init
or_pressed:
cpi OP,0
;cpi temp2,$04
brne button_pressed
rjmp init
nand_pressed:
cpi OP,2
cpi temp2,$08
brne button_pressed
rjmp init
and_pressed:
cpi OP,1
cpi temp2,$10
brne button_pressed
rjmp init
1 ответ
Я не знаю, действительно ли вам нужно использовать инструкцию по сборке. Могу ли я порекомендовать использовать Atmel Studio, которая является бесплатным для личного / коммерческого использования кросс-компилятором IDE, который работает для всех микроконтроллеров Atmel?
Установите Atmel studio и перейдите к созданию нового исполняемого проекта, и это позволит вам выбрать целевой контроллер.
Я уверен, что вы можете закончить кодирование на C или C++ за долю времени, которое вы потратите на отладку ассемблерного кода.