Кнопка проверки 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++ за долю времени, которое вы потратите на отладку ассемблерного кода.

Другие вопросы по тегам