Forum: Mikrocontroller und Digitale Elektronik Interrupts mit AT2560 für Tastendruck


von Jochen (Gast)


Lesenswert?

Schönen guten Abend,
ich bin gerade dabei, die Überprüfung auf einen Tastendruck nicht in 
einer while Schleife permantent abzufragen, sondern über Interrupts. 
Folgenden Code möchte ich umschreiben:
1
main(void)
2
{ 
3
while(1)
4
{
5
if(  (PINK&0b01000000)==0){    
6
 PORTB=0b00000111;
7
}else{
8
 PORTB=0b00000110;
9
}
10
}}
damit der Tastendruck in Form von einem Interrupt abgefragt wird.
Was löst denn ein Itnerrupt aus? Ein Zustandswechsel an Ports, die auf 
Eingang geschaltet sind?
Dann könnte doch folgender Code benutzt werden ?
1
main(void)
2
{ 
3
sei();
4
}
5
6
7
ISR(Vectorname)
8
{
9
if(  (PINK&0b01000000)==0){    
10
 PORTB=0b00000111;
11
}else{
12
 PORTB=0b00000110;
13
}
14
}
würde das funktionieren?
Was ist der Vektorname beim AT2560 ? Ich verstehe die Anleitung im 
Tutorial nicht die zu ermitteln.

Schönen Dank!

jo

von Noname (Gast)


Lesenswert?

Öh? Tasten? Interrupt?

Ich glaube das hatten wir hier schonmal. Suche bitte danach.

von Oops (Gast)


Lesenswert?

Vergiss Tasten mit einem Interrupt abzufragen. So wichtig ist ein 
Tastendruck auch wieder nicht. Zudemm muss man entprellen.

von Jochen (Gast)


Lesenswert?

...die Alternative wäre, die Tastendruck in einer Endlosschleife 
abzufragen. Wenn ich dann aber andere Dinge ind er Zwischenzeit mache 
(z.B. einen Ball über das LCD wandern lasse etc) kann ich in der Zeit 
keinen Tastendruck abfragen. D.h. dadurch entsteht eine gewisse 
parallele Verarbeitung? Wie kann sowas sonst erreicht werden

von Noname (Gast)


Lesenswert?

Nun, lies Dir erstmal die Posts hier durch die Du beim Stichwort 
Interrupt und Tasten findest. Viele hatten den selben Grund wie Du, 
Tasten über Interrupts abzufragen.

Du wirst Dich vielleicht wundern, warum ich nicht direkt darauf 
antworte. Aber das wird einfach seit Jahren jede Woche mindestens 
zweimal gefragt.
Das Thema wird erschöpfend behandelt worden sein.

von Jochen (Gast)


Lesenswert?

okay kein Problem dann ist es doch klar dass ich mich hier umsehe :-)

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.