java script, togglefunktion mit geschwindigkeitsänderung

Gast #4548954
Lesenswert?
• ▲
▼
Ich versuche gerade mit meinem espruino in java skript einen 4x4x4- LED- 
cube anzusteuern. dabei möchte (nur so zum spaß) eine toggle-fnktion mit 
automatischer zeitänderung schreiben. soll heißen: 5x alle 200ms 
blinken, dann umschalten und nur mehr alle 500ms 5x blinken usw.. die 
funktion toggle funktioniert intern an sich d.h. "anz" & "time" werden 
intern erhöht und auch wieder rückgesetzt aber in der 
"setinterval"-funktion wird "time" nicht geändert und behält immer 
seinen anfangswert. weiß jemand was ich falsch mache?

schon mal danke im voraus,
lg vanii
Angehängte Dateien:
#4549244
Lesenswert?
• ▲
▼
setInterval(toggle, time) erzeugt einen 'timer' der die Funktion toggle 
alle 'time' msek aufruft. Wenn dieses callback einmal definiert ist 
haben spätere Änderungen der Variablen time keine Auswirkung mehr. Um 
die Zeit zu ändern musst du mit changeInterval die gespeicherte Zeit 
ändern, oder mit clearInterval löschen und neu anlegen.

http://www.espruino.com/Flashing+Lights

Alternativ könnte man auch den Timer einmalig mit 100msek definieren und 
dann in toggle() entscheiden ob die LEDs bei jedem 2. oder 5. Aufruf 
umgeschaltet werden.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.