Hi, I'm building a simple MIDI > DMX device with an AVR 164P running at 16mhz. USART1 receives MIDI CC info and stores it in RAM. USART0 reads the RAM and transmits DMX. Both USARTS are interupt driven. This should be easy, but...
The problem is that I can't receive MIDI and send DMX at the same time. When I do it creates errors (seen as flickering) on the DMX side. When the MIDI stops, the flickering also stops and the lights display the correct colors.
The MIDI interupt routine is very short. It stores the data, sets a "data received" flag and exits. Of course, it also saves and restores SREG along the way, but it's not more than a couple of microseconds.
The DMX USART has a higher priority, but it doesn't seem to make a difference.
Any ideas what I'm doing wrong? I've thought about using multiple processors, but it really seems to be overkill for something like this.
« Back to index