I am trying to program demonstrators with large lengths of ISELED LEDs. I am running into an issue however where I get stuck in a DEV_ASSERT loop when trying to address more than 35 devices in a single strip upon sending my first digLED_Set_RGB() command.
Is there an limit lower than the 4075 potential addresses for how many devices can be used with this release? I was able to make more work in previous releases...
Hello Johnathan,
We have not encountered this problem. May I ask how you are addressing the LEDs? More information would help to find a solution for your problem.
Thank you,
Dragos
When starting from the s32k144 iseled freemaster example, I set the iseled component to data PTE5, clock PTE4, timeout 300 uS. I change the line:
#define NR_OF_LEDS
add additional values to the input buffer array continuing to count upward:
digLED_SendCmdBlockType cmdBlock[NR_OF_LEDS] = {
/*RED |GREEN |BLUE |LED ADDRESS|COMMAND */
{0xA1, 0xBB, 0xCC, 1, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 2, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 3, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 4, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 5, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 6, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 7, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 8, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 9, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 10, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 11, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 12, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 13, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 14, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 15, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 16, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 17, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 18, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 19, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 20, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 21, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 22, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 23, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 24, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 25, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 26, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 27, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 28, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 29, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 30, SET_RGB_BLOCK, {0}},
/*{0xA1, 0xBB, 0xCC, 31, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 32, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 33, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 34, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 35, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 36, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 37, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 38, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 39, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 40, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 41, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 42, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 43, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 44, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 45, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 46, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 47, SET_RGB_BLOCK, {0}},
{0xA1, 0xBB, 0xCC, 48, SET_RGB_BLOCK, {0}},*/
};
in the main function, I initialize the strip
strip = 0;
digLED_ReturnType retCode;
//strip initialization
digLED_Reset (0);
delay(2000);
digLEDResultStrip1.chainLength = nrOfLEDs;
//appState = OPERATION_ONGOING;
retCode = digLED_Init_Strip(&testInitType, &digLEDResultStrip1, strip);
//while(appState == OPERATION_ONGOING);
delay(1000000);
and then upon the first set command to the strip:
digLED_Set_RGB(100, 100, 100, 0, strip);
the program gets kicked into DEV_ASSERT and can't come out if I tell the program to use more than 30 LEDs