Datenstruktur
Aus Das Epilepsy Wiki
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.
