реклама на сайте
подробности

 
 
> Кнопки на atmega16
SpiritCoat
сообщение Jul 30 2008, 09:53
Сообщение #1





Группа: Новичок
Сообщений: 11
Регистрация: 14-04-08
Пользователь №: 36 773



Искал поиском, но самого простого и базового объяснения нигде не нашел.
В общем идея такова: нажимается кнопочка и двоичное число, высвечиваемое на светодеодах, увеличивается на единичку. Деоды прикреплены к порту D, кнопочка висит на порте А. Вот код:

Код
.include "m16def.inc"

.def     Temp=R16
.def     Temp1=R17
.def     Temp2=R18
.def     Temp3=R19
.def     Temp4=R20


.cseg
.org 0

ldi Temp, 0b11111111  
out DDRB,Temp        

ldi Temp,0b00000001    
out PortB,Temp        

BUT:

sbis PinA,0x00; если нажато - переходим к SWITCH
rjmp BUT

SWITCH:

inc Temp
out PortB,Temp
ldi Temp1,0
ldi Temp2,0

DLY:

dec Temp1 ; задержка
brne DLY
dec Temp2
brne DLY

rjmp BUT


Вроде бы все логично, но почему-то работает как угодно, но не так как описано. Что я делаю неверно?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MrYuran
сообщение Jul 30 2008, 10:05
Сообщение #2


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Для начала - нет подавления дребезга.
Дальше - нет детектирования отпускания кнопки. То есть, при нажатии и удержании числа просто будут "бежать". В результате, могу предположить, что получился неплохой генератор случайных чисел.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 19:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01369 секунд с 7
ELECTRONIX ©2004-2016