Gast
#27344
Hallo Leute,
ich häng seit zwei Tagen an folgendem Codefragment. Wie man sieht
versuche ich den PIN-Change-Interrupt eines ATTiny15 zu benutzen. Wenn
ich in folgendem Code den PIN 2 des IC (PortB 4) auf Masse lege, fürhr
er trotzdem weiter munter seine Interrupts aus und verzweigt IMMER in
meine Interrupt-Routine ...
Warum ? Stimmt da was am Environment nicht ?!
Wer kann mir helfen ?
Besten Dank schon mal
UBoot-Stocki
.include "tn15def.inc"
.org 0x000 ; Programm kommt an Anfang von PROM
.def temp = r16 ; temporäres Register definieren
.def led = r17
initint:
rjmp init ; Reset handler
reti ; IRQ0 handler
rjmp pinchg ; Pin change handler
reti ; Timer1 compare match
reti ; Timer1 overflow handler
reti ; Timer0 overflow handler
reti ; EEPROM Ready handler
reti ; Analog Comparator handler
reti ; ADC Conversion Handler
init:
ldi temp, 0b11101111
out DDRB, temp ; Port PB3 als Ausgang, PB4 Eingang
ldi led, 1 ; LED initialisieren
ldi temp, 0b00100000
out GIMSK, temp ; Pin-Change Interrupt enable
sei ; Interrupts freigeben
rjmp main ; Programmstart
pinchg:
in temp, PORTB
andi temp, 0b00010000 ; vergleicht ob BIT PB4 gesetzt ist
brne pinend
... hier soll was passieren ...
pinend: reti
main: ; Hauptprogramm
rjmp main