Mahlzeit!
Ich habe ein Denkproblem:
Annahme: Ich möchte eine PIN am IOW 1 Sekunde anschalten und danach wieder abschalten. Das wäre nicht das Problem: "Sleep(1000);". Möchte ich das aber für mehrer PINs (also LEDS) parallel machen, aber nicht genau Zeitgleich - also wenn der Benutzer Switch 1 drückt, soll LED 1 1 Sekunde leuchten, drückt der Benutzer Switch 2 soll LED 2 10 Sekunden leuchten, aber drückt er zwischendruch Switch 3 soll LED 3 0,01 Sekunden leuchten.
Wie setze ich das um wenn es um 40 Leds geht, die durch Switchs oder SW Befehle ausgelöst werden?
Anmerkung: Das Ziel ist, dass bei einem Flipper die LEDs blinken in gewissen Mustern, wenn jedoch ein Ereignis ausgelöst wird sollen einige LEDS in andere Blinkmodi umschalten, andere Bleiben, und dann noch wieder andere dazwischen Leuchten bis ein bestimmter Switch ausgelöst wird und dann wieder ausgehen.
danke für Tipps!
mfg ds
C++ mit Verzögerungen sowie mehrer Aufgaben parallel
Moderator: Guido Körber
-
- Posts: 9
- Joined: Tue Feb 28, 2012 9:10 am
- Christoph Jung
- Posts: 670
- Joined: Sun Oct 08, 2006 3:43 pm
- Location: Germany / Berlin
- Contact:
Re: C++ mit Verzögerungen sowie mehrer Aufgaben parallel
Sleep() ist dafür nicht geeignet. Die Pins bleiben doch so lange gesetzt, bis man diese Zurücksetzt, also könnte man einen Timer nutzen, der alle paar Milisekunden durchläuft und Befehle mittels "schaltern" auszulösen. Evtl. wird ein extra Thread benötigt um das Ganze unabhängig vom Lesen zu schreiben.
-
- Posts: 9
- Joined: Tue Feb 28, 2012 9:10 am
Re: C++ mit Verzögerungen sowie mehrer Aufgaben parallel
Mahlzeit!
Danke für die Antwort. Um ehrlich zu sein, habe ich noch nicht durchschaut wie ich das hinbekommen könnte. Grundsätzlich ist mir klar, dass mein Programm immer wieder in eine Schleife kommen kann und so bestimmte Dinge immer wieder abarbeitet. Doch wie ich zeitlich gezielt darauf Einfluss nehmen kann, ist mir nicht klar. Ebenso verstehe ich nicht, wie ich gewährleisten kann, dass ich nicht zu oft in zu kurzer Zeit auf den IOW schreibe um zu verhindern dass ich seine Geschwindigkeit überschreite...
mfg ds
Danke für die Antwort. Um ehrlich zu sein, habe ich noch nicht durchschaut wie ich das hinbekommen könnte. Grundsätzlich ist mir klar, dass mein Programm immer wieder in eine Schleife kommen kann und so bestimmte Dinge immer wieder abarbeitet. Doch wie ich zeitlich gezielt darauf Einfluss nehmen kann, ist mir nicht klar. Ebenso verstehe ich nicht, wie ich gewährleisten kann, dass ich nicht zu oft in zu kurzer Zeit auf den IOW schreibe um zu verhindern dass ich seine Geschwindigkeit überschreite...
mfg ds