Hallo,
ich habe ein mittlerweile recht großes Projekt, bei dem ich mehrere LEDs mithilfe von Bitmanipulation steuere.
Beispielsweise geschieht dies folgendermaßen:
if (val_2 != Knopf_2_State)
{
if (val_2 == HIGH)
{
Serial3.print("RTE 2\rFREEZ 0\r");
Serial.println("Anfrage: Taste 2 wurde gedrueckt!");
LEDbit=LEDbit & LEDloeschmaske;
LEDbit=LEDbit | 0b00000010;
LEDschaltvorgang(LEDbit);
}
}
Ein Druck auf diese Taste löst nach einer Bitmanipulation im Anschluss den Schaltvorgang aus:
void LEDschaltvorgang(byte LEDbeschaltung)
{
digitalWrite(LED_1, (LEDbeschaltung&1)==1?HIGH:LOW);
digitalWrite(LED_2, (LEDbeschaltung&2)==2?HIGH:LOW);
digitalWrite(LED_3, (LEDbeschaltung&4)==4?HIGH:LOW);
digitalWrite(LED_4, (LEDbeschaltung&8)==8?HIGH:LOW);
digitalWrite(LED_5, (LEDbeschaltung&16)==16?HIGH:LOW);
digitalWrite(LED_6, (LEDbeschaltung&32)==32?HIGH:LOW);
}
LEDs können somit aus und eingeschaltet werden. Funktioniert soweit gut.
Mein Problem ist nun, dass es mir für dieses Projekt nicht mehr reicht zu wissen, ob eine LED an oder aus ist, sondern die LEDs werden auch noch diverse andere Zustände annehmen können, wie z.B. "schnelles Blinken" oder "langsames Blinken".
Da ein Bit jedoch leider nur zwei Zustände "kennt", komme ich an dieser Stelle nun leider nicht mehr weiter.
Kann mich vielleicht jmd. auf die richtige Spur führen, wie ich meinen Code "umbauen" kann?
Ich stelle es mir (in Pseudocode geschrieben) grob so vor:
LEDbit = 00040210;
// LED_1 ist aus
// LED_2 ist an
// LED_3 blinkt langsam
// LED_4 ist aus
// LED_5 blinkt sehr schnell
// LED_6 ist aus
Gruß Chris