Arduino Beste Lösung meinen Code um einen Taster zu erweitern

Gast #4473379
Lesenswert?

Hi,

ich will einen weiteren Taster für "timeset - 1" nutzen, bin aber 
unsicher, wie man das am besten löst, wie es funktonieren kann ist mir 
klar, aber eben nicht, obs dann so ordentlich ist, würde den gesammten 
digitalRead-Prozess einfach kopieren, den Taster-Pin ändern und aus dem 
+ ein - machen. Denke das müsste irgendwie mit nem else kürzer gehen, 
komm aber nicht dahinter wie. Hoffe ihr könnt mir da mal eben helfen.

Mfg
1
      case 1: //Hour setting
2
        if (flash) {
3
          display.drawRect(15, 0, 13, 9, BLACK); //Flash cursor (5Hz)
4
        }
5
        if (!digitalRead(8) && (!flash)) { //Update setting at 5Hz rate if button held down
6
          timeset = t.hour; //Get the current hour and save in temporary variable
7
          timeset = timeset + 1; //Increment the hour at 5Hz rate
8
          if (timeset > 23) {
9
            timeset = 0; //Roll over hour after 23rd hour (setting done in 24-hour mode)
10
          }
11
          t.hour = timeset; //After each update, write the hour to the time structure
12
          set_rtc_field(t, hourset); //Write the set field only to the RTC after each update
13
        }
14
        break;
Gast #4473400
Lesenswert?

Da das ganze ja scheinbar in 200ms Intervallen aufgerufen wird: Mach das 
so.

Begründung: Kostet praktisch keine Performance.

Und für Code der nur die Uhrzeit einstellen soll, muss man jetzt auch 
kein riesiges Fass aufmachen.

Wenn du mal was anderes hast: Normal liest man regelmäßig oder per 
Pin-INT alle Taster ein, speichert die in ne Variable und verwendet die 
dann im Code.

Hat den Vorteil dass Taster entprellen und einlesen zeitlich entkoppelt 
sind und dass man Programmlogik einfach von der Hardware abstrahieren 
kann.

Gerade bei OO Programmierung wichtig.

Bei kleineren Projekten kann man sich das aber auch mal ausnahmsweise 
schenken.
Gast #4473416
Lesenswert?

Danke.
Ich lerne noch, das hat nicht wirklich alles einen Sinn, noch nicht, 
will halt erstmal ein paar Funktionen und Methoden lernen.
Also die übliche Methode, die man zu Tastern allgemein so findet... ist 
wohl doch besser. Hab da noch ne "flash"-Funktion im Code, bin noch 
nicht sicher, wie wichtig das ist und wie ich eine saubere 
Aktualisierung sonst hinkriege, ohne dass das Display beim flackert, die 
flash-Funktion gehört zum Code-Teil, den ich irgendwo gefunden habe.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren