AVR per Interrupt (Tasterdruck) ins Unterprogramm

Gast #1765427
Lesenswert?
• ▲
▼
Hallo :)

Bin ganz neu beim Thema AVR und habe eine Frage zu Interrupts. Ich hoffe 
ihr könnt mir helfen.

Ich habe einen ATMega32 und möchte per Taster an PD2 von einem 
Unterprogramm ins Andere und beim nächsten Taster-Druck wieder 
zurückwechseln. Ist das möglich? Könnt ihr mir einen Codeschnipsel 
hinwerfen? Werde aus dem AVR-GCC-Tutorial (Ich nutze gcc/studio) an der 
Stelle leider nicht schlau. Reicht als Entprellung nach dem 
Programmwechsel ein kurzer Delay?

Viele Grüße und Danke im Voraus!!
#1765430
Lesenswert?
• ▲
▼
Stefan Friedse schrieb:
> Hallo :)
>
> Bin ganz neu beim Thema AVR und habe eine Frage zu Interrupts. Ich hoffe
> ihr könnt mir helfen.
>
> Ich habe einen ATMega32 und möchte per Taster

Taster und Interrupts sind eine schlechte Idee.

> zurückwechseln. Ist das möglich? Könnt ihr mir einen Codeschnipsel
> hinwerfen?

Klar.
Die beste Methode sieht so aus
http://www.mikrocontroller.net/articles/Entprellung#Komfortroutine_.28C_f.C3.BCr_AVR.29
#1765494
Lesenswert?
• ▲
▼
Stefan Friedse schrieb:
> Das verstehe ich leider nichtmal ansatzweise :(

Musst du auch nicht.
Das ist eine der wenigen Funktionalitäten, bei denen es ok ist, sie 
nicht zu verstehen.

Wie ein Timer funktioniert, weißt du (hoffentlich).
Das man mit einem Timer einen Overflow-Interrupt auslösen kann, weißt du 
hoffentlich auch.

Den Teil in der ISR übernimmst du einfach. Das ist ok, wenn dir das 
spanisch vorkommt.

Dann brauchst du noch die einzelnen get Funktionen und fertig.

Beim Beispiel im Link ist ganz unten die main-Funktion, die dir zeigt 
wie das alles zusammenspielt.

-> die defines noch anpassen auf den Port und die Pins an denen deine
   Tasten hängen
-> Taktfrequenz eintragen (ist nicht so kritisch)
-> ISR Code bei dir einbauen
-> Die Get Funktionen bei dir einbauen
   (du wirst fürs erste nur die get_key_press brauchen. Alle anderen
   kannst du fürs erste ignorieren)

-> Von überall her get_key_press mit der Tastenbezeichnung aufrufen,
   wo du eine Tastendruck-Abfrage brauchst

-> Sich am perfekten funktionieren der Tasten erfreuen

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.