Da ich im Netz einfach keine treffende Hilfe finde, dachte ich mir ,dass ich das hier poste.
Ich arbeite mich durch ein Arduino- Lehrbuch und bin bei einer Lektion, bei der ein Taster zu einem Schalter programmiert wird. Bei einem Mal Drücken schaltet sich die LED ein und bleibt solange an, bis der Taster nochmal betätigt wird. Screenshot des Programms hänge ich mit an. Das Programm funktioniert aber mir ist Eines unklar. Die betreffenden Stellen habe ich rot markiert.
So jetzt zur Fragestellung:
Ich habe "debouncedTasterStatus" als Variable drinnen, die im Loop-Teil abgefragt wird, ob diese mit "tasterStatusActual" ungleich ist, um die fortlaufenden Anweisungen zu aktivieren.
Wie kann das Programm so funktionieren bzw. diese if-Bedingung abgefragt werden, wenn bis zu diesem Teil der Wert der Variable "debouncedTasterStatus" nicht definiert ist und erst am Ende des Loop-Teils mit "tasterStatusActual" gleichgesetzt wird?
Meines Wissens nach arbeitet das Programm von oben nach unten und kann die Variable im Vorhinein nicht bestimmen.
Das selbe trifft auch bei "prevTasterStatus" zu.
Ich hoffe ich kann hier eine erleuchtende Antwort bekommen,
Danke im Vorraus.
Setze Deinen Code bitte direkt ins Forum. Benutze dazu Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *). So ist er auch auf portablen Geräten lesbar.
Das kannst Du auch noch nachträglich ändern.
Globale Variablen werden mit 0 initialisiert.
Ein Lehrbuch, dass alle Variablen als int anlegt, ist wohl eher ein Leerbuch.
Ich habe "debouncedTasterStatus" als Variable drinnen, die im Loop-Teil abgefragt wird, ob diese mit "tasterStatusActual" ungleich ist, um die fortlaufenden Anweisungen zu aktivieren.
Wie kann das Programm so funktionieren bzw. diese if-Bedingung abgefragt werden, wenn bis zu diesem Teil der Wert der Variable "debouncedTasterStatus" nicht definiert ist und erst am Ende des Loop-Teils mit "tasterStatusActual" gleichgesetzt wird?
Da diese Variablen außerhalb von loop() existieren, bleiben sie auch über die Grenzen der Funktion erhalten.
Lesetipp:
Sichtbarkeitsbereich oder/und Geltungsbereich von C++ Variablen.