Hi, ähm DDR Register - was is das?
*Seufz... das meinte ich mit "ganz vorne anfangen..."
Also: Wenn ich Dich richtig verstanden habe, sollen Zwei Dinge parallel laufen: Erstens soll ein regelmäßiger Rhythmus für die Flashlights und die Beacon generiert werden, gleichzitig sollen diese Gruppen und die Landescheinwerfer per RC-Signal ein- und ausgeschaltet werden. Richtig??
Ersteres würde ich mit der Variablen V machen, die in der Timer1-ISR alle 30 ms hochgezählt wird. Select Case hatte ich ja schon angedeutet:
Code:
...
...
Do
...
Select Case V
Case 1:
Set Flashlinks
Set Flashrechts
Set Flashheck
Case 2:
Reset Flashlinks
Reset Flashrechts
Reset Flashheck
Case 4:
Set Flashlinks
Set Flashrechts
Set Flashheck
Case 5:
Reset Flashlinks
Reset Flashrechts
Reset Flashheck
Case 6:
Set Baconheck
Case 14:
Reset Baconheck
Case 16:
V=0
End select
...
Nur am Rande sei erwähnt, dass man den Effekt der Zeilen
Set Flashlinks
Set Flashrechts
Set Flashheck
auch kürzer bekommen kann:
PORTA = PORTA OR &B00001011
Damit setzt Du in einem Rutsch die Ausgänge A.0, A.1 und A.3, weil die Operation X ODER 1 als Resultat immer 1 hat, während X ODER 0 immer X ergibt.
Wenn die Flashlights wieder aus sollen, könntest Du schreiben
PORTA = PORTA AND &B11110100
Damit löschst Du die Ausänge A.0, A.1 und A.3, denn X UND 0 ergibt immer 0, während X UND 1 immer X ergibt.
(Boolesche Algebra...).
Wie Du schon richtig vermutet hast, legt das DDR-Register fest, welcher der Anschlüsse als Ausgang konfiguriert ist. Wenn Du Deine Lampen nicht mit einem superhochverstärkenden Vorverstärker ansteuerst, kannst Du die Anschlüsse einfach als Eingang konfigurieren - dann bleiben die daran angeschlossenen Lampen aus, unabhängig davon, was im dazugehörigen PORT-Register steht.
Beispiel:
Flashlights und Beacon aktiv, Landescheinwerfer und Positionslichter aus:
DDRA = &B00001111
Positinslichter an, Rest aus:
DDRA = &B01100000
Nur Flashlights aktiv:
DDRA = &B00001011
dafür würde sich ein zweiter Select-Case-Befehl in der Hauptschleife anbieten, der die Variable Impuls abcheckt.
BTW: Kenst Du eigentlich das Buch von Roland Walter? 
Hals- und Beinbruch!!
Lesezeichen