. Det är själva "initieringen".
2) Din array ska vara en global variabel - den deklareras utanför main - dvs.
Men dina mönsterdata är värden som aldrig ska ändras på! Därför är det inte bra att deklarera dem som vanliga variabler, för då fyller de på RAM-minnet som är
begränsat på en AVR. Eftersom de dessutom deklareras med konstanter i början av programmet kommer de dessutom att fylla upp flashminnet (=programminnet) med samma data.
Därför ska du deklarera arrayerna i FLASHMINNET istället för i SRAM. Jag har beskrivit exakt hur du gör i inlägg tidigare.
Eftersom du då måste ha en array för varje mönster så är det smartast att arrayerna är i två dimensioner: den ena visar vilket mönster du valt, den andra pekar ut databytes med färginformationen i mönstret:
Kod: Markera allt
uint8_t PROGMEM monster[3][20] = { // 3 = antal mönster, 20 = antal databytes i varje mönster
// mönster noll
{ 0,1,2,3,4,5,6,7,
0,1,2,3,4,5,6,7,
0,1,2,3,4,5,6,7,
0,1,2,3,4,5,6,7,
0,1,2,3,4,5,6,7,
0,1,2,3,4,5,6,7}
// mönster ett
{ 0,1,2,3,4,5,6,7,
0,1,2,3,4,5,6,7,
0,1,2,3,4,5,6,7,
0,1,2,3,4,5,6,7,
0,1,2,3,4,5,6,7,
0,1,2,3,4,5,6,7}
// mönster två
{ 0,1,2,3,4,5,6,7,
0,1,2,3,4,5,6,7,
0,1,2,3,4,5,6,7,
0,1,2,3,4,5,6,7,
0,1,2,3,4,5,6,7,
0,1,2,3,4,5,6,7}
// slut på mönster
}
- här är då "nummer" numret på det mönster som ska visas, och "i" är loopvariabeln som går igenom data.