Programm unterbrechen aber wie?

OP #4501695
Hallo, ich möchte einen Programmablauf auf einem ATMega328P 
unterbrechen, sobald mindestens einer von zehn Schaltern, die alle an 
den digitalen Pins des ATMegas liegen seine Position verändert.
Programmiert wurde über Arduino.
Die Internen Pullups sind für alle Schalter aktiv.
Über die Schalter wird ein Binärcode eingegeben. Sobald jedoch während 
des Programmablaufs mind. einer der Schalter verändert wird, soll das 
Programm angehalten werden. Wie bekomme ich das am einfachsten gelöst?
Gast
Pin-Change-Interrupt für die jeweiligen Eingänge aktivieren. Sobald sich 
dann einer der Pins ändert, wird die zugehörige ISR angesprungen. Falls 
du das Hauptprogramm noch mehr "unterbrechen" willst (nach Abschluss der 
ISR gehts sonst dort normal weiter), kannst du ja in der ISR eine 
Variable ändern, die im Hauptprogramm abgefragt wird um dann irgendwo 
anders hin zu springen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 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.