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!!
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
Ich kenne mich ja nicht aus. Wie löst man es sonst? Ich möchte per Taster in ein Unterprogramm und beim nächsten Tasterdruck wieder herauswechseln.
mach es mit einem zustand und frage den taster zyklisch ab
Stefan Friedse schrieb: > Ich kenne mich ja nicht aus. Wie löst man es sonst? Im Link ist alles was du brauchst > Ich möchte per Taster in ein Unterprogramm und beim nächsten Tasterdruck > wieder herauswechseln. Bau die Funktionalität aus dem Link ein. Ein Aufruf von get_key_press sagt dir ann alles weitere
Das verstehe ich leider nichtmal ansatzweise :(
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.