Datenstruktur

Aus Das Epilepsy Wiki

Wechseln zu: Navigation, Suche

Zuordnung der LEDs

  • Beschreibung der Datenstruktur Epilepsy *

Um alle LEDs des Kreises, die 8 Zusatzausgänge und die Leuchtdauer festzulegen wurde eine Array mit 8 Byte festgelegt. Die Array setzt sich wie folgt zusammen und sollte Binär definiert werden.

Byte1.. Byte6 Leds des Leuchtkreises
Byte7         Zusatzausgänge
Byte8         Zeitdauer des Leuchtens


  • Zuordnung der LEDs

01010101 01010101 01010101 01010101 01010101 01010101
Position LED 1 (rot)

Durch die Definition mehrere einzelner Leuchtschritte kann so ein Lichtprogramm erstellt werden.
Beispiel:

const uint8_t Matrix [10][8] PROGMEM=
{
{ 0b01010100,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,10}, 
{ 0b00000001,0b01010000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,15},
{ 0b00000000,0b00000101,0b01000000,0b00000000,0b00000000,0b00000000,0b00000000,10},
{ 0b00000000,0b00000000,0b00010101,0b00000000,0b00000000,0b00000000,0b00000000,20},
{ 0b00000000,0b00000000,0b00000000,0b01010100,0b00000000,0b00000000,0b00000000,10},
{ 0b00000000,0b00000000,0b00000000,0b00000001,0b01010000,0b00000000,0b00000000,10},
{ 0b00000000,0b00000000,0b00000000,0b00000001,0b01010000,0b00000000,0b00000000,10},
{ 0b00000000,0b00000000,0b00000000,0b00000000,0b00000101,0b01000000,0b00000000,10},
{ 0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00010101,0b00000000,10},
{ 0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00001010,0b00000000,10},
{ 0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b10101000,0b00000000,10}
};

Wichtig ist dabei die Definition als Konstante und der Zusatz PROGMEM
Das veranlasst den Compiler die Konstante im Flash zu speichern, wo sie per Programm auch ausgelesen wird.

for( i=0;i<=6;i++)
     Reihe_Wert[i] = pgm_read_byte(&wowie2[ME5][i]);

Das verhindert einen Speicher- und Stacküberlauf.

Persönliche Werkzeuge