*Seufz... das meinte ich mit "ganz vorne anfangen..."Hi, ähm DDR Register - was is das?
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:
Nur am Rande sei erwähnt, dass man den Effekt der ZeilenCode:... ... 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 ...
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!!







Zitieren

Lesezeichen