Forum: Mikrocontroller und Digitale Elektronik Interrupt Problem (Mega16)


von Heiko (Gast)


Lesenswert?

Hallo,

habe num endlich meinen Mega16 und auch schon ordentlich was
ausprobiert, hauptsächlich die Sachen aus dem Tutorium.
Nur eine Sache will nicht funktionieren. Das benutzen der externen
Interrupts. Ich möchte das eine LED am PortB Pin2 bei Drücken eines
Tasters (gegen Ground)angeht. Ich mache das so:


.include "m16def.inc"

.org 0x000
    jmp main
.org int1addr
    jmp int1handler


main:
ldi r16,low(RAMEND)
out spl,r16
ldi r16,high(RAMEND)
out sph,r16

ldi r16,0b00000111   ;Register b auf output stellen
out ddrb,r16
ldi r16,0       ;Register b nullen
out portb,r16

ldi r16,0            ;Register d input
out ddrd,r16

ldi r16,0xff         ;Register d pullup
out portd,r16

ldi r16,0b00001010
out mcucsr,r16
ldi r16,0b10000000
out gicr,r16

loop:
rjmp loop

int1handler:
sbi portb,2
reti

von ...HanneS... (Gast)


Lesenswert?

Ich sehe kein "SEI", ohne wird das nix mit Interrupt. Den Rest habe
ich jetzt aber nicht überprüft, habe das Mega16-Datenblatt nicht im
Kopf...

von Heiko (Gast)


Lesenswert?

Das hatte ich doch glatt übersehen...
Peinlich, aber ist mein erster Tag mit uC.

Ciao, heiko

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.