Der Interrupt, die Hauptschleife und der ganze Rest

OP #2737916
Hab hiern 160x104 LCD dem ich per I2C Befehle von nem ATMega schicke. 
Nebenbei frage ich noch einen Resolver sowie dessen Drucktaster im 
Interrupt zur Eingabe ab (kurz/lang gedrückt -> Menüführung) und setze 
entsprechend unübersichtlich die jeweiligen Bits zur weiteren Abfrage in 
der Hauptschleife. Hin und wieder verschluckt die Schleife die Bits und 
mit der Menüführung ist's Essig. Ich habe schon überlegt Teile des 
Ablaufs in die ISR zu legen - diese wird dann aber schnell recht groß 
und vermutl. ziemlich ruckelig.
Wie macht man das am Besten? Ist die Vorgehensweise grundsätzlich ok?
Joachim ... schrieb:
> Nebenbei frage ich noch einen Resolver sowie dessen Drucktaster im
> Interrupt zur Eingabe ab (kurz/lang gedrückt -> Menüführung) und setze
> entsprechend unübersichtlich die jeweiligen Bits

Dann mache es übersichtlich.

Ein Timerinterrupt fragt die Tasten ab, entprellt sie und setzt Bits für 
das (kurz/lang) Drück-Ereignis. Ebenso fragt er den Encoder ab, 
entprellt und zählt die Pulse seit der letzten Abfrage.

Die Menüführung im Main liest, sobald sie Zeit hat, die Drückbits und 
Zählwerte aus und setzt sie zurück.

Für den Encoder sollten 1ms reichen und für die Tasten sind 10ms 
optimal. Also ein 1ms Interrupt mit ner Zählvariable bis 10.


Peter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.