Forum: Mikrocontroller und Digitale Elektronik Frage zur allgemeinden Einbindnung der externen Interrupts


von Andy Rath (Gast)


Lesenswert?

Hallo

Ich beschäftige mich jetzt ca. seid einem Monat intensiv mit Assembler
und AVRs und bin voll begeistert, was man da alles machen kann. Bis
jetzt hat auch alles immer geklappt auch die internen Interrupst, aber
mit den externen kom ich einfach nicht zurecht.

Ich habe versucht im Internet etwas zu finden und habe auch das
Datenblatt gewälzt, aber irgendwie werde ich da nicht recht schlau.

Ich weiß, dass ich dem MCUCR mitteilen muss, ob der Interrupt bei
fallender oder steigender Flanke erfolgen soll. Außerdem habe ich mit
dem Befehl SEI die Interrupts eingeschaltet und die Interrruptvektoren
in der Reihenfolge verwendet, wie sie im Datenblatt angegeben sind.
Den Interrrupt gedachte ich dann durch anlegen von Spannung am INT0
Eingang auszulösen, aber es ging nicht.

Ich würde mich freuen, wenn mir jemand sagen könnte, auf was ich noch
achten muss bzw. wo ich einen Fehler gemacht habe.

von Florian Pfanner (Gast)


Lesenswert?

Hallo,

hast du das 'GIMSK'-Register gesetzt? - nur wenn dieses auf 1 ist,
kann ein Interrupt ausgelöst werden.

Poste mal deinen Code, dann kann man bessere Antworten geben.

Gruß, Florian

von Andy Rath (Gast)


Angehängte Dateien:

Lesenswert?

OK im Anhang ist ein Program, so wie ich dachte, dass es funktionieren
muss, aber, dass nicht funktioniert.

Das mit dem GIMSK Register verstehe ich nicht, denn so weit ich das aus
dem Datenblatt verstehe (Wobei das muss nichts heißen, weil ich nicht
wirklich gut Englisch kann :-)) bedeutet das setzen des GIMSK-Flags
nichts anderes als ein Interrupt auszulösen. Wenn ich das intern über
die Software mache, dann habe ich doch wieder nichts extern
beeinflusst, oder seh ich das falsch?

Andy

von Johannes Richter (Gast)


Lesenswert?

Also so wie ich das Datenblatt verstehe, wird mit dem Setzen der
entsprechenden Bits des GIMSK Registers nicht ein Interrupt ausgeloest,
sondern ermoeglichst. Probier also in Main ein
ldi temp, 0b11000000
out GIMSK, temp
Dazuzutun. :-?

Viel Erfolg!
Gruesse,
j.

von Andy Rath (Gast)


Lesenswert?

OK, Danke, jetzt läuft es. Sagte ja mit Englisch bin ich trotz 8 Jahre
Unterricht nicht sio bewandert. Also jetzt läuft auch das.

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.