Otóż jak w tytule mam problem z przerwaniem pcint. program ma za zadanie zamrugać 2 diodami pb0 i pb1 po czym iść spać. Pcint ma go obudzić i wykonać taką samą sekwencję. Globalne mam odblokowane, pcint też, pul upy podciągnięte a to dalej nie działa.... Proszę o pomoc
Poprawiłem tytuł - regulamin p.11.2
[zumek]
.DEVICE ATtiny13
.ORG 0x0000
;-------------------- wektor przerwań -------------------
rjmp reset
reti
rjmp pcint
reti
reti
reti
reti
reti
reti
reti
;--------------------------------------------------------
reset:
sei
;----------------------- inicjacja SP -------------------
ldi r16, low(ramend)
out SPL, r16
;--------------------------------------------------------
;----------------------- ustawienia SLEEP ---------------
in r16, mcucr
sbr r16, 0b00100000 ; se -> 1
cbr r16, 0b01011000 ; pud -> 0, sm0 i sm1 ->0 idlle mode
out mcucr, r16
;--------------------------------------------------------
;----------------------- ustawienia WDT------------------
in r16, MCUSR
cbr r16, WDRF
out MCUSR, r16
in r16, WDTCR
sbr r16, wdce
out WDTCR, r16
ldi r16, 0b00010111
out WDTCR, r16
sei
;---------------------------------------------------------
;--------------------- inicjacja PCINT -------------------
in r16, gimsk
sbr r16, pcie
out gimsk, r16
in r16, pcmsk
sbr r16, 0b00111100
out pcmsk, r16
;--------------------------------------------------------
;---------------------- main ----------------------------
ldi r16,0b00000011
out ddrb, r16
rcall wait
ldi r16,0b00000010
out portb, r16
rcall wait
ldi r16,0b00000001
out portb, r16
rcall wait
ldi r16,0b00000010
out portb, r16
rcall wait
ldi r16,0b11111101
out portb, r16
sei
sleep
;---------------------------------------------------------
;------------------------ PCINT --------------------------
pcint:
ldi r16,0b00000011
out ddrb, r16
rcall wait
ldi r16,0b00000010
out portb, r16
rcall wait
ldi r16,0b00000001
out portb, r16
rcall wait
ldi r16,0b00000010
out portb, r16
rcall wait
ldi r16,0b11111101
out portb, r16
reti
;---------------------------------------------------------
;--------------- Pętla opóźnienia czasowego --------------
wait:
ldi r17, 0b11111111
q0:
ldi r16, 0b11111111
q1:
wdr
dec r16
brne q1
dec r17
brne q0
ret
;---------------------------------------------------------
Poprawiłem tytuł - regulamin p.11.2
[zumek]