Hi Everyone,
I am again playing the Timer Conflict game. Not fun, provoking some bad words...
Can anyone point to some documentation of the timers used in common Arduino and contributed libraries? I am thinking about:
- Servo
- Tone
- Ping/NewPing [Ultrasonic ranging]
- Motor Drivers using pins 9,10
- Audio/MP3
- I2C [??Can be a problem??]
- Timer/Scheduling Libraries
- Others, I'm sure
My immediate clash is Servo, NewPing and a Motor Driver library I wrote/rewrote. This is for a simple Robot that moves, "looks around" with an Ultrasonic Sensor (SR04) mounted on a servo, and is supposed to Avoid Stuff.
I would really like to document what timers are used by various libraries, millis etc. on the ArduinoInfo.Info WIKI. Hopefully we could document workarounds and alternate libraries and techniques.
**If you have seen a table/list of this stuff I have missed please let us know! **
Other: IsThere any work that has been done to provide a common timer interface that can support multiple libraries? Other more complex RealTime systems use one or two hardware timers with a subsystem that can create several virtual timers that can service multiple tasks. Is something like this workable for Arduino?
I'd REALLY like to understand this better personally, and document it for others.
Calling Rob Tillaart, Tim Eckel, cr0sh , mem, DC42, (some element?), Nick Gammon, Oddbot, Peter(RobotFreak) and Other Gurus who I didn't retrieve from Old Memory quickly!
Any help and suggestions very much appreciated.
Throwing some beginning stuff in the ArduinoInfo.Info WIKI HERE: PLEASE request membership and edit. Or just throw stuff at me and I'll work on organizing it.
Some Reading:
The Timer-Interrupt tutorial by RobotFreak (From LetsMakeRobots) HERE:
Simon Monk's "Arduino Timer" library (helps in applications. Libraries??) HERE: