Forum: Mikrocontroller und Digitale Elektronik IF-Abfrage Vergleich


von Manuell (Gast)


Lesenswert?

Guten Abend,
Ich stehe ein bischen auf dem schlauf das  meine IF-Abfrage nicht so 
richtig funktioniert.


ich wollte gerne das der Beeper zb von 19.30uhr bis 22.45uhr aktiv ist, 
wobei die zeit ich einstellen wollte.
aber so richtig haut das nicht hin.

zeit. ist meine interne RTC

kann mir jemand weiter helfen
mfg.
1
Beeptime.stunde_a = 19;
2
Beeptime.minute_a = 30;
3
4
5
Beeptime.stunde_e = 22;
6
Beeptime.minute_e = 45;
7
8
9
10
     if ((zeit.stunde > Beeptime.stunde_a ) && (zeit.minute > Beeptime.minute_a )
11
      && (zeit.stunde < Beeptime.stunde_e ) && (zeit.minute < Beeptime.minute_e))
12
     
13
    {
14
15
         //BEEPER ON
16
         Beeper_on(1);
17
18
19
20
    }
21
         //BEEPER OFF
22
       Beeper_off(0);

von Peter II (Gast)


Lesenswert?

> zeit.stunde > Beeptime.stunde_a

größer gleich dürfte hier richtiger sein

von Karl M. (Gast)


Lesenswert?

Hallo Manuell,

nun rechne mal mit einer Weltzeit als long, damit kann man auch 
vergleichen.

von Tobias L. (murxwitz)


Lesenswert?

in deinem gewollten Zeitraum schaltest du den Beeper ein und gleich 
wieder aus, versuchs mal mit nem ELSE

von Walter (Gast)


Lesenswert?

zur Erklärung von Karl:
du kannst h und min nicht unabhängig voneinander betrachten, also besser 
z.B. alles in min umrechnen

von Thomas (Gast)


Lesenswert?

Hallo Manuell,

setz doch mal für zeit.stunde und zeit.minute alle möglichen Werte 
zwischen 19:30 und 22:45 Uhr ein und prüfe, wann die if-Anweisung wahr 
oder falsch ergibt.

Notfalls schreib Dir ein Testprogramm drumherun, welches die Werte 
einsetzt. Nur, damit Du nicht von 19:30 bis 22:45 Uhr warten musst =;-)

von Niels (Gast)


Lesenswert?

Versuch es mal damit:
1
if((zeit.stunde > Beeptime.stunde_a || (zeit.stunde == Beeptime.stunde_a && zeit.minute >= Beeptime.minute_a )) &&
2
   (zeit.stunde < Beeptime.stunde_e || (zeit.stunde == Beeptime.stunde_e && zeit.minute <= Beeptime.minute_e ))

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.