Interrupt mit Taster Hilfe

Kann jemand mir helfen einen Interrupt zu programmieren?
Ich bin ein ziemlich hoffnungsloser Fall was das Programmieren angeht, muss aber wegen einem Schulprojekt einen Interrupt in meinem Programm haben.
Der Interrupt soll mein Menü stoppen, wenn ich einen Taster drücke und Kurz das Wort "Pause", auf einem LCD Display ausgeben.
Danke für die Hilfe!

In dem?
Was muss denn da noch so rein?

Hallo,
und warum willst Du für einen Taster einen Interrupt nehmen. Ist doch völliger Unsinn.

Wenn Du eine schleife hast aus der Du nicht mehr rauskommst dann frage doch einfach den Taster noch mal ab. Aber Schleifen ohne Ende sind grundsätzlich schlecht. If... verwenden ist besser das ist keine Schleife sondern eine Verzweigung.
Heinz

Ja in dem, außer dem Interrupt noch ein LED-Streifen der seine Farbe verändert.

Ist der Interrupt explizit gefordert oder ist das deine Lösung für das Problem?

Nein, der Interrupt ist gefordert, kann es nicht weglassen.

poste mal die ganze Aufgabe möchte sehen wie das EXAKT formuliert ist.

Warum schreibst du nicht alles im erstem Beitrag nur splitterst das alles? Das kann dazu führen das dir keiner weiter hilft. Setze die komplette Aufgabe ab a bis z rein.

Ich schliesse mich @noiasca und @fony an. Die Aufgabe muss schon komplett sein. Und Du solltest das nicht splittern.
Wenn Du unten auf die Fahne klickst, kannst Du unter "sonstiges" die Mod's bitten, ob sie diesen Thread mit dem anderen mergen - das machen die ganz fix und dann gehört das schön zusammen...

Danke @my_xy_projekt das mit dem mergen habe schon gesehen nur wuste nicht wie und was

Also ein Menü ist doch kein Selbstzweck.
Zur Funktionsbeschreibung
irgendein Menü, Hauptmenü oder Menü1 oder Menü2 oder Menü3 oder oder oder wird angezeigt.
Wenn jetzt eine Taste gedrückt wird
lösche das Display
schreibe auf das Display "Pause"
und nach 4 Sekunden soll dann wieder der gleiche Menüpunkt wie vor dem Taste drücken angezeigt werden?

Hallo,
anscheinend gibt es auch Lehrkräfte die nicht ganz verstanden haben wozu ein Interrupt erforderlich ist und was man besser ohne macht. Ich wüsste im Moment gar nicht was in der ISR stehen könnte , außer das da ein Merker gesetzt wird der dann an der betreffende Stelle im Menue-Baum abgefragt wird um ihn zu verlassen.

Heinz

Das sieht nach einem XY-Problem aus.

Wenn der Lehrer unbedingt einen interrupt haben will

volatile boolean KnopfGedrueckt;

in der ISR

void myISR() {
  KnopfGedrueckt = true;
}

und der function die die Menüs ausgibt

if (KnopfGedrueckt) {
  KnopfGedrueckt = false;
  lcd clear
  lcd print Pause
  delay(4000); // unschöne Minimallösung mit delay()
}

Wenn der Lehrer fragt warum du in der ISR nur einen Merker setzt und nicht "Pause" auf das LCD schreibst
Antwort: "innerhalb einer ISR machen Profis nur in ganz seltenen Ausnahmefällen eine Datenausgabe auf Anzeigen ISR sollen innerhalb weniger Mikrosekunden abgearbeitet sein.
Deshalb nur einen Merker setzen und im "normalen" Programmablauf auf den Merker reagieren."
vgs

1 Like

Ich glaube das ist oft auch nur eine bequeme Art die Verwendung von Interrupts zu zeigen, weil man da eine einfach und vom Benutzer auslösbare Interruptquelle hat. Ob es sinnvoll ist ob die Schüler sich da falsche Sachen angewöhnen ist für die Lehrer leider weniger wichtig.

Hallo
Ich denke, dass das eine sprachliche Verallgemeinerung des Begriffes, wie üblich in der deutschen Sprache für "Sozial Media" oder "Handy", ist.
Ein "Interrupt" ist eine Unterbrechung, von was auch immer und wie auch immer gestaltet.

Ich wünsche einen geschmeidigen Abend und viel Spass beim Programmieren in C++.
Дайте миру шанс!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.