Originally Posted By: altman
edit: At least, that's how I remember it. Did you see that in the code, Mark? Really, adjacent 1 bits being sent in a row only need a delay for the first one too.

Yup, that's how it (still) works today. Very long delay for 0->1 transitions, very short delay for anything else, which also now includes 0->0 and 1->1 non-transitions.

The time-critical part is that much of this runs with interrupts disabled, so we don't like to take any longer than necessary inside there. I've also added a usage semaphore to protect against multiple tasks trying to use it simultaneously, which only really happens when a fan controller is present.

Cheers


Edited by mlord (13/01/2009 15:30)