Hi guys,
I've spent two days trying to make this TLC5973 work, but, eventually, I let down my ego and thought ask some experienced guys about my problem. Here is the plain code...
uint32 write = 0x3AAFFFFF; uint8 count = 48; for(; count; count--) { out(1); delay_cycles(1); out(0); if(bit_test(write, 31)) // if MSB is 1 { out(1); delay_cycles(1); out(0); } else { delay_cycles(4); } write <<= 1; }
I know that the last 16 bits are 0, but that's not the problem. I have a LEDs on all channels and at least one should be full bright, second should be dimmed, and the third should be off. Unfortunately, for some reason, all of them are off.
The period is 5us, and from oscope wave form I can't see any problem. From my understanding, if I'm letting the line down (0) for a longer period of time (at least 8 cycles), it should apply the new values, right? I'm posting the wave form here...
Thanks, in advance.