Arduino DMX-512 troubleshoot (RS-485)

One thing I've noticed working on digitalWrite() is that the code you are using to set the pin can be much more than the one instruction you might expect. For instance, if "pinNumber" and "portNumber" are variables in your code then _SFR_BYTE(_SFR_IO8(portNumber)) &= ~_BV(pinNumber); takes 26 clock cycles, slightly more than 1.5 microseconds.

I just documented an oscilloscope-free way of measuring small time intervals to the software troubleshooting topic: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1175115259