Gast
#3431195
Wir haben folgende Aufgabenstellung: Erstellen Sie ein Programm mit welchem die Prellanzahl der Taster SW1 und SW2 gemessen wird. Die Messung soll auf 2 Arten durchgeführt werden: • SW1: Pegeländerungs-Interrupt und Hochzählen der Prellanzahl in der ISR • SW2: Pegeländerungs-Event ist die Taktquelle für einen Timer ➜ Prellanzahl steht im CNT-Register Wird der erste „Preller“ detektiert, so muss kurz gewartet werden (Delay >100ms) um alle Preller zu messen. Danach soll der Wert auf den 4 LEDs ausgegeben werden (Werte größer 15 auf 15 begrenzen, sonst stimmt die Anzeige nicht). Nach kurzem Delay (>1s) sollen die LEDs wieder gelöscht werden und die Messung kann erneut durchgeführt werden. Betreiben Sie den XMega mit 32MHz für ein genaueres Ergebnis. Der µC ist ein ATXMEGA128A1 Mein bisheriger Fortschritt: http://pastebin.com/VbuvnWLM Nun zu meiner eigentlichen Frage: Wie kann ich mit dem Timer Delays machen (also ohne Verzögerungsschleifen). Wie funktioinert das überhaupt? Der Lehrer meinte wir sollen einen OVF-interrupt benutzen, aber wieso? Ich versteh die Aufgabenstellung nicht, denn wenn ein Preller mal erkannt wurde, wieso warte ich dann 100ms?(da sind die Preller wsl schon alle weg oder) und was soll ich da zählen wenn die eh schon alle weg sind?