Страница 1 из 1

Atmega8 подключение кнопки :(

Добавлено: Сб фев 27, 2010 19:30:06
DIMA040891
Здраствуйте!!!

Подскажите кто может пожалуйста почему нерабатает это прога:

.INCLUDE "m8def.inc"

.def Temp=R16
.def Temp1=R17
.def Temp2=R18
.def Temp3=R19
.def Temp4=R20
.def Counter=R21
.def Temp5=R22
.def Temp6=R23
.def Temp7=R24
.def Temp8=R25



; Пробное подключение кнопки к порту МК
.cseg
.org 0



ldi Temp,0xFF
out DDRC,temp
ldi Temp,0b00000011
out PORTD,Temp


Reset1:

ldi Temp4,0b00000010
out PORTC,Temp4


Pincykle: sbic PinD,0 ;прпустить следующию строчку, если кнопка нажата
rjmp PinCykle
;кнопка нажата, ждём 0,2С
ldi Temp2,$02
ldi Temp1,$71
ldi Temp,$00
rcall Delay
Pin_release:
sbis PinD,0 ;пропустиь если отпущена
rjmp Pin_release

lsl Temp4
cpi Temp4,0b01000000
breq Reset1
out PORTC,Temp4
ldi Temp2,$06
ldi Temp1,$1A
ldi Temp,$80
rcall Delay
;пауза 0,5С

rjmp Pincykle

Delay: subi Temp,1
sbci Temp1,0
sbci Temp2,0
brcc Delay
ret

Начиная с PC1 по PC5 подключены 5 светодиодов.
PinD0 и PinD1 подключены 2 кнопки
По идее при нажатие кнопки должен загораться следующий светодиод порта C. Но непроисходит ничего :(((.
Собрал эту схему в Protuse сначала незаработало. Затем убрал внутренние подтягивающие резисторы и заработало, но на практике всё равно неработает :(((((

Добавлено: Сб фев 27, 2010 20:09:33
GP1
Первое что бросается в глаза - нет инициализации стека. Дальше даже не смотрел.

Добавлено: Сб фев 27, 2010 20:17:13
DIMA040891
Огромное спасибо!!!!!!!!!!!!!!!! Всё заработало!!!!!!!!!!! Фув наконец!!!!
Вопросик только остался, а почему Protues работало?!?!?

Добавлено: Сб фев 27, 2010 20:23:28
GP1
Вот поэтому я и не работаю в шпротеусе, глюков больше чем пользы.

зы: на будущее - если уж собираешься изучать асм, то приучайся сразу писать красиво, потом будет самому легче разбираться со своим же кодом. На сайте у ARV видел исходники на асме офрмленные очень аккуратно.
В общем удачи!