Задача: когда не нажата ни один из кнопок в дисплее отображить 0000. При нажатии кнопки Nominal отображить в дисплее число который уже в памяти EEPROM, и с помощю кнопок + и - прибавить или вычислить это число. У меня все получается кроме этого: когда нажимаю на + или - число прибавляется или вычисливается десятками, а надо чтобы прибавился или вычисливался по одному. Если будут люди которые смогут помочь,оствьте mail я пришлю вам файлы AVR Studio и Proteus.
Для дребезга в коде добавляю Delay , но тогда дисплай работает некорректно. .macro delay ldi temp,$03 ; (1-255) K: ldi XL,low (@0) ; low byte time delay ldi XH,high(@0) ; high byte time delay loopin: sbiw XH:XL,1 brne loopin dec temp brne K .endm для примера delay $25
Вот так и сделал ,, delay вставил перед опросом кнопки ,, но тогда дисплай работает некорректно ,, показывает неправильные цифры
delay тормозит все подряд что на него наткнется, а не толтко кнопку. И почему именно на Ассемблере? Задание такое?
ну этот delay просто macro который ниже ,, да задача на ассемблере ,, изучаю ассемблер AVR )) .macro delay ldi temp,$03 ;K ?ac (1-255) K: ldi XL,low (@0) ;low byte time delay ldi XH,high(@0) ;high byte time delay loopin: sbiw XH:XL,1 ; brne loopin dec temp ; brne K ; .endm
Посчитайте нам, сколько тактов выполняется данный код ? Желательно перевести в реальное время с учетом ТЧ контроллера.. Нам лениво...