Dann kann ich's aber auch gleich wieder per Polling machen.zumindest den Timer IRQ und natürlich dort NUR die Auswertung auf Änderung = Schalter betätigt
Fast alle ATMEL Controller der "neueren" Serien ( ATTINY, ATMEGA ) können Pin Change Interrupts was in etwas das gleiche sein sollte.PIC die IRQ Fähigkeit aller (fast aller) Pins schätzen gelernt
Mit Latenzzeiten meinte ich die Zeit, die vom Tastendruck bis zur Impulsausgabe vergeht.
Wenn ich das per Polling mache ist diese Zeit variabel, da ja die Tastenabfrage irgendwo im Hauptprogramm gemacht wird.
Sind dann im Hauptprogramm Operationen die sehr lange dauern, wird durch diese die Impulsausgabe verhindert.
Wenn das eine Rolle spielt kann man das so nicht machen.
Wenn die Reaktion schnell erfolgen soll, muss man die Tastenabfrage per Interrupts machen, den Impulsausgang sofort setzen und eventuell einen Timer ( Comparematch Interrupt ) als Abschalter für die Impulsausgabe missbrauchen.
Sagen wir mal eine Taste wurde gedrückt, der zugehörige Interrupt aktiviert und der Impulsausgang gesetzt.
Nun wird der aktuelle Zählerstand des Abschaltetimers ( z.B. Timer 1 ) ausgelesen, der Wert für die gewünschte Impulslänge dazuaddiert und im COMP1x Register abgelegt.
Schlägt nun der Comparematch Interrupt zu wird der Impulsausgang abgeschaltet.
Diese Methode würde sehr kurze Latenzzeiten produzieren und das Hauptprogramm immer nur kurzzeitig stören. Ist aber vom Handling her nicht so ganz einfach und Unproblematisch. Die komplette Tastenabfrage, Impulsgenerierung würde dabei, wie schon gesagt, in Interrupts abgewickelt.
Lesezeichen