I just came across this interesting new Timer library by Simon Monk which aims to "banish those delay()s":
http://srmonk.blogspot.com/2012/01/arduino-timer-library.html
Here's some examples:
Toggle the state of the digital output 'pin' just once after 'period' milliseconds.
t.pulse(pin, 10 * 60 * 60 * 1000, HIGH); // 10 minutes
Toggle the state of the digital output 'pin' every 'period' milliseconds.
t.oscillate(pin, 100, LOW);
Run the 'callback' every 'period' milliseconds:
t.every(1000, takeReading);
Cheers,
Drew
