Hi all. As per usual, I've encountered something, and I have no idea why this is happening. I am chin deep in my WS2812 project. I wrote a routine that sends data to the LEDs. It loads my special "1" or "0" byte into the MSSP, then sits and waits in a loop, checking the SSP interrupt flag before proceeding to the next one. It works well. I am now trying to convert this to an interrupt driven routine. Rather than sit in a loop wasting time, I want to release control to the main line, and once the SSP interrupts, load the next byte. Rince, repeat, etc. This routine will be triggered by a timer interrupt (currently every 16mS) and outputs all the LEDs, then turns off the SSP interrupt so there is no transmissions until the next timer interrupt. The routine I currently have is not quite working right. I am writing to 3 LEDs, and the first two flicker all over the place. Interestingly, the third one is solid. In any case, checking with my scope, I have noticed that my bit to bit spacing is about double what it used to be. I am guessing that might be part of the problem, even though there is no bit to bit spacing time defined in the datasheet. I've been playing with my code, trying various things, and I've noticed there seems to be a chunk of time missing from when the interrupt fires to when my ISR code runs. To test this, I'm now actually sitting in the ISR, and after I load the SSP buffer, I sit in a loop and wait for the flag to be set. At that point I toggle a pin. I then exit the ISR, and I should jump right back in, since I have a flag set. The first instruction I have in the ISR is then to toggle the same pin again. My guess was that the time between these two toggles should be relatively short. I know there will be overhead as context is restored and saved, and my ISR fuction is called, etc. However, I'm currently measuring about 4uS between the two toggles. At my 16MIPS speed, that's well over 600 instructions, which seems high. So...can anyone offer any insight into why I'm seeing a gap before the chip vectors to the ISR? I have checked the errata, but no love there. Thanks! Josh --=20 A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools. -Douglas Adams --=20 http://www.piclist.com/techref/piclist PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .