Interaktiva LED öl Pong tabell (45 / 87 steg)
Steg 45: Programvara: hur the LED rutnätsdata är packad
Titta på rutnätet i den första bilden, kommer du se att ROW0 representeras av LED_data [0], ROW1 representeras som LED_data [1], ROW2 representeras som LED_data [2], ända upp till ROW31 som representeras som LED_data [31]. Sedan varje LED_data [x] ordet är 16-bitar, vi kan representera de 12 kolumnerna med 12 av de 16-bitar (4 MSb inte används). För varje LED_data [x] ordet, COL0 representeras av bit 0, Kol1 representeras som bit 1, hela vägen till COL11 som föreställs som bit 11.
Raderna i rutnätet föreställs som x-planet och du sätter i rutnätet är y-planet. Om vi ville vända på pixel på plats (0,0) vi skulle ställa LED_data [0] = 0b000000000001 (0x001). När rutnätet uppdateras ser det det lite 0 LED_data [0] är lika med 1 (på) och skicka data som behövs till HT1632C att slå på pixel.
Låt oss göra exemplet i foto #2.
Vi vill bara slå på pixel på ROW11 och COL7. Vi skulle navigera till LED_data [11] och ge bit 7 1 och sedan uppdaterar rutnätet. Det är så enkelt som så.
LED_data [11] = 0b000010000000 = 0x080
Här är värdena som till exempel i foto #3 (jag har bara listat värden för de rader som har en eller flera pixlar som är på).
LED_data [3] = 0x004
LED_data [7] = 0x080
LED_data [11] = 0x210
LED_data [16] = 0x040
LED_data [18] = 0x020
LED_data [22] = 0xFFF
LED_data [29] = 0x1C0
Nu när vi vet hur data mappas till vårt LED nät, kan vi lära att uppdatera rutnätet!