Leute......hier geht es um ein einfaches Blinkprogramm für den Arduino.
Hat den keiner der Arduino-Freunde oder anderen Programmieren hier eine Idee?![]()
Leute......hier geht es um ein einfaches Blinkprogramm für den Arduino.
Hat den keiner der Arduino-Freunde oder anderen Programmieren hier eine Idee?![]()
mill is_rev_on=millis();
Ohne genaue Beschreibung deines Programms, weisst du in Kürze selbst nicht mehr was du gemacht hast.
JO, da war ein Leerzeichen da, wo es nicht hin sollte.mill is_rev_on=millis();![]()
Ich hab mich jetzt mal bemüht eine gute Beschreibung hinzubekommen...Ich hoffe die is gut so, wenn nicht bitte sagen.Ohne genaue Beschreibung deines Programms
Auserdem waren noch 2 Variablen zu viel drin.![]()
Hi Geensiver.
Ist dein gezeigter Code vollständig? Ich bin nicht so firm mit C, aber ich kann nicht erkennen, wo die beiden Funktionen setup() und loop() aufgerufen werden, weil ich kein main() finde.
Ich vermute, du willst eine Weiterschaltung von Phase zu Phase realisieren:
1: Zeitnehmen und einschalten
2: Warten auf Ausschaltbedingung
3: Warten auf Auszeit-Ende
Die Phasen 2 und 3 sollten dann WHILE-Konstrukte sein mit der jeweils negierten Bedingung ("solange Abbruch-Kriterium NICHT erreicht").
Dann fehlt m.E. noch der direkte Sprung nach oben zu Phase 1, oder eben: main() {loop();}
Dass es bisher überhaupt zu einem Blinken kommt, erscheint mir eher zufällig (wenngleich offenbar reproduzierbar).
Was ich noch sagen wollte:
Ich fände es besser, die veröffentlichte ursprüngliche Programmversion nicht nachträglich zu verändern, weil dann die innere Stimmigkeit des Threads verloren geht.
Lieber durch jeweils aktuelle Versionen die sukkzessive Verbesserung des Programms erkennbar machen.
Geändert von RoboHolIC (17.11.2013 um 22:25 Uhr)
Arduino Code ist etwas problematisch. Es läuft einiges im Hintergrund ab, ähnlich wie bei BASCOM.
Vom Syntax her ist das geschriebene schon richtig, auch das loop()
Problematisch betrachte ich allerdings dieses unsigned long.
Wenn das hier: if(millis() == (timer_2+time_off)) nicht genau erreicht wird, ist es vorbei und es gibt keinen Sicherheitsausstieg. Das unsigned long ist eine 8Byte Zahl. Wenn es da während der Addition und Vergleich eine Verschiebung gibt, ist es vorbei.
Ich bin mir sicher das hier irgendwo der Wurm steckt, auch wenn ich ihn nicht erkenne.
OK, ist für µC-Anwendungen in gewisser Weise auch sinnvoll.
Wie siehst du das mit dem ungebremsten Durchrauschen durch alle drei IF-Blöcke? Das erscheint mit nach-wie-vor plausibel. Hab ich mich da auch geirrt? Dann würde ich mich eben mal leise pfeifend davonstehlen ...
Lesezeichen