PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Idee für Select Case Kette und Set/Reset gesucht, HILFE ;-)



humperdinger
20.03.2008, 06:48
Hallo Leute,

ich stehe völlig auf dem Schlauch, vielleicht hat jemand eine Idee...

Es sollen abhängig von hereinkommenden Daten Portpins gesetzt und nach einer definierten Zeit wieder zurückgesetzt werden.
Die Pins sind mittels der ALIAS Funktion zugewiesen (aus Verdrahtungsgründen sind die Pins stark vermischt), hier K1-K20.
Hat z.B. die Variable "Daten" den Inhalt 4 soll K4 gesetzt werden, nach 500ms wieder rückgesetzt.
Leider kann ich die Variable nicht direkt für das setzen verwenden da SET nicht mit Variablen zusammen spielt, deshalb die SELECT CASE Kette.
Geht das nicht einfacher???
Nun aber das eigentliche Problem: Wie kann man das Rücksetzen nach einer (am besten per Variable) definierten Zeit Interruptgesteuert erledigen.
Es können nämlich bei weiteren Durchläufen weitere Portpins gesetzt werden z.B. K3 nach 100ms K5 nach 220ms K18 nach xxxms usw.. Rückgesetzt soll aber nach je (ca.) 500ms werden. Timer kann verwendet werden, der ist frei. Ich habe einfach keine brauchbare Idee ausser 20 Hilfsvariablen mitzusetzen (500ms) und im Timerinterrupt Millisekundenweise runterzuzählen. Die muss ich dann aber alle immer wieder prüfen und bei Null den entsprechenden Port rücksetzen.
Geht das nicht einfacher???

Hier mal ein Stück Code zur Veranschaulichung der gewünschten Funktion. So funktioniert das natürlich nicht da Wait ja alles anhält.



Do
...
Daten holen
...
Select Case Daten 'Daten decodieren
Case 1
Set K1
Waitms 500
Reset K1
Case 2:
Set K2
Waitms 500
Reset K2
...
Case 20
Set K20
Waitms 500
Reset K20
End Select
...
Loop


Ich wäre für jede neue Idee sehr dankbar, Danke und tschüss sagt
Evi