C++ mit Verzögerungen sowie mehrer Aufgaben parallel

Dies ist das deutsche Forum für alle Themen um den IO-Warrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

Post Reply
daniel2009
Posts: 9
Joined: Tue Feb 28, 2012 9:10 am

C++ mit Verzögerungen sowie mehrer Aufgaben parallel

Post by daniel2009 »

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
User avatar
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

Post by Christoph Jung »

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.
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
daniel2009
Posts: 9
Joined: Tue Feb 28, 2012 9:10 am

Re: C++ mit Verzögerungen sowie mehrer Aufgaben parallel

Post by daniel2009 »

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
Post Reply