diff --git a/Core/Src/main.c b/Core/Src/main.c index c9b3c7b..2942604 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -80,6 +80,8 @@ void LEDDesign_ColorRed(void); void LEDDesign_Crazy(void); void LEDDesign_Smile(void); void LEDDesign_SuperCrazy(void); +uint8_t lookupLED(uint8_t column, uint8_t row); +void setLED(uint8_t pixelNumber, uint8_t redLevel, uint8_t greenLevel, uint8_t blueLevel); void updateWS2812BData(void); /* USER CODE END PFP */ @@ -912,6 +914,240 @@ void LEDDesign_SuperCrazy(void){ LEDData[i][2] = randomByte; } } +uint8_t lookupLED(uint8_t column, uint8_t row){ + switch(column){ + case 0: + switch(row){ + case 0: + return 0; + break; + case 1: + return 15; + break; + case 2: + return 16; + break; + case 3: + return 31; + break; + case 4: + return 32; + break; + case 5: + return 47; + break; + case 6: + return 48; + break; + case 7: + return 63; + break; + } + break; + case 1: + switch(row){ + case 0: + return 1; + break; + case 1: + return 14; + break; + case 2: + return 17; + break; + case 3: + return 30; + break; + case 4: + return 33; + break; + case 5: + return 46; + break; + case 6: + return 49; + break; + case 7: + return 62; + break; + } + break; + case 2: + switch(row){ + case 0: + return 2; + break; + case 1: + return 13; + break; + case 2: + return 18; + break; + case 3: + return 29; + break; + case 4: + return 34; + break; + case 5: + return 45; + break; + case 6: + return 50; + break; + case 7: + return 61; + break; + } + break; + case 3: + switch(row){ + case 0: + return 3; + break; + case 1: + return 12; + break; + case 2: + return 19; + break; + case 3: + return 28; + break; + case 4: + return 35; + break; + case 5: + return 44; + break; + case 6: + return 51; + break; + case 7: + return 60; + break; + } + break; + case 4: + switch(row){ + case 0: + return 4; + break; + case 1: + return 11; + break; + case 2: + return 20; + break; + case 3: + return 27; + break; + case 4: + return 36; + break; + case 5: + return 43; + break; + case 6: + return 52; + break; + case 7: + return 59; + break; + } + break; + case 5: + switch(row){ + case 0: + return 5; + break; + case 1: + return 10; + break; + case 2: + return 21; + break; + case 3: + return 26; + break; + case 4: + return 37; + break; + case 5: + return 42; + break; + case 6: + return 53; + break; + case 7: + return 58; + break; + } + break; + case 6: + switch(row){ + case 0: + return 6; + break; + case 1: + return 9; + break; + case 2: + return 22; + break; + case 3: + return 25; + break; + case 4: + return 38; + break; + case 5: + return 41; + break; + case 6: + return 54; + break; + case 7: + return 57; + break; + } + break; + case 7: + switch(row){ + case 0: + return 7; + break; + case 1: + return 8; + break; + case 2: + return 23; + break; + case 3: + return 24; + break; + case 4: + return 39; + break; + case 5: + return 40; + break; + case 6: + return 55; + break; + case 7: + return 56; + break; + } + break; + } + return 0; +} +void setLED(uint8_t pixelNumber, uint8_t redLevel, uint8_t greenLevel, uint8_t blueLevel){ + LEDData[pixelNumber][0] = greenLevel; + LEDData[pixelNumber][1] = redLevel; + LEDData[pixelNumber][2] = blueLevel; +} void updateWS2812BData(void){ uint8_t byteToConvert; for (uint8_t i = 0; i < 64; ++i) {