Pages: 1 [2]   Go Down
Author Topic: if-Schleife in die void setup  (Read 1211 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
God Member
*****
Karma: 5
Posts: 705
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Chris,
das ist richtig.
Mein Problem ist aber, warum die Funktion überhaupt aufgerufen wurde?
Bedingung war doch, dass millis()<1000 sein muss, also wirklich nur direkt wenn der arduino neugestartet wird, also stecker raus und rein.
Resettet sich millis() irgendwann wieder??
Gruß
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 249
Posts: 21181
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

millis() hat eine Überlauf (fängt wieder mit 0 an) nach 49 Tagen und einigen Stunden.
Grüße Uwe
Logged

Dresden / Germany
Offline Offline
Sr. Member
****
Karma: 4
Posts: 451
Entwicklungsklaus
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Kann also nicht der Auslöser sein, da 49 Tage nach der Entwicklung längst nicht rum sind...

Stromausfall, Schwankungen?

Mhh, Breadboard, oder "echter" Arduino?
Spannungsversorgung stabilisiert?

mmh, also ich sehe eigentlich keinen Fehler (was nicht viel heißt), aber ich würde an Deiner Stelle trotzdem einen "Triggerbegrenzer" einbauen....
<1000 heißt ja alle Millis die kleiner als 1000 sind... das heißt es wird 999 mal ausgelöst.... sofern er das denn schafft innerhalb der cyclen... was bestimmt nicht so ist, und daher so oder so zu einem "Überlauf" > an Aufgaben führt... was allerdings garnicht Dein Problem ist....

mmh, da bin ich jetzt auch gespannt....

Lieber Gruß
ChrisS
Logged

Sturmfabrik - mediale Dienstleistungen
www.sturmfabrik.de

NRW
Offline Offline
Sr. Member
****
Karma: 2
Posts: 372
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich weiß zwar auch nicht warum der Code ausgeführt wird obwohl millies größer hätte sein sollen aber was mir auch noch aufgefallen ist:
Bei 18 Uhr und 8 Uhr sind beide Bedingungen für eine Stunde wahr!


millies geht echt über 49 Tage?
Das ist aber ein ziemlich große Zahl dann >4.000.000.000 wenn ich mich nicht verrechnet habe.

Thorsten
Logged

Offline Offline
God Member
*****
Karma: 5
Posts: 705
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,
Ich werds wohl besser über einen boolean definieren:
Initial wird boolean auf true gesetzt, neustart wird nur ausgeführt, wenn boolean==true und in der neustart void wird der boolean auf false gesetzt.
Somit dürfte sich sowohl der millis-Reset nach 50 Tagen sowie die 999-fache Ausführung der void erledigen.  

@Thorsten:
Kannst du mir genau sagen, wo du den Fehler siehst? (Oder hast du dir den Code aus Beitrag#1 angeschaut?)

if (hour<8 || hour>=18) {
 ....
  }
==> hier wird von 00 Uhr bis 7 Uhr und dann wieder von 18 Uhr bis 23 Uhr ausgeführt

  else if (hour>=8 && hour<18) {
 ....
  }
==> hier wird von 8 Uhr bis 17 Uhr auseführt

Gruß
Thorsten

« Last Edit: April 04, 2011, 02:07:18 am by currymuetze » Logged

NRW
Offline Offline
Sr. Member
****
Karma: 2
Posts: 372
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Oh, sorry.
Da hab ich mich verguckt.
Ist OK so!
Logged

Pages: 1 [2]   Go Up
Jump to: