Forum: Mikrocontroller und Digitale Elektronik Ext. Interrupts Atmega6450


von Attila (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

Ich versuche gerade durch einen Tasterdruck einen Interrupt auszulösen, 
der in weiterer Folge eine LED zum blinken bringen soll.
Soweit so gut, ich habe bereits den Code geschrieben, aber er springt 
mir einfach nicht in die ISR hinein.
Ich hoffe ihr könnt mir helfen :)
Taster liegen auf PortE Pin 2-5 und auf PortJ von Pin 2-6 liegt ein 
Joystick.
Ich versuche in erster Linie mit Pin 2 einen Interrupt auslösen, aber 
wie bereits erwähnt funktioniert das momentan noch nicht.

µC ist ein Atmega6450 und programmiert wird mit AVR Studio 5 über JTAG.
Taster und LEDs funktionieren einwandfrei.
Anbei findet ihr den Code.

lg Attila

von Peter II (Gast)


Lesenswert?

Attila schrieb:

>  int taster = 0;

volatil int taster = 0;

wenn nicht noch ein anderen Fehler drin ist, sollte es so gehen.

von Attila (Gast)


Lesenswert?

Nein, funktioniert leider noch immer nicht :(

von Attila (Gast)


Lesenswert?

So es funktioniert jetzt, ich musste nur in der ISR(), auf PCINT0 bzw. 
PCINT3 statt auf PCINT2 schreiben.
Momentan kann ich aber mit jedem Button von PCINT0 einen interrupt 
auslösen. Wie kann ich nur auf einen einzigen Button eine spezielle ISR 
folgen lassen?
Also Taster1 -> ISR1
     Taster2 -> ISR2 usw.

von Attila (Gast)


Lesenswert?

push

von Martin Antoni (Gast)


Lesenswert?

Geht nicht, du musst in der ISR abfragen, welcher taster gedrückt worden 
ist.

von Attila (Gast)


Lesenswert?

Ich habe es gerade eben mit einer Pinabfrage in der ISR probiert, 
funktioniert aber nicht. Er reagiert noch immer auf alle Interrupts und 
nicht nur auf den einen speziellen.
Könnt ihr mir genau sagen wie das gehen soll?

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.