Go Down

Topic: TimerOne updates (Read 414 times) previous topic - next topic

I'm new to this and not sure of the etiquette for modifying existing libraries, so would appreciate some pointers.

I started development of a timer using Timer1, but then came across the TimerOne library.  Rather than create something new, I'd like to propose some amendments to the existing library, but I'm not sure how I go about it.

To give you a feel, my suggested amendments are as follows:

*  - Add (long) assignments and casts to TimerOne::read() to ensure calculations involving tmp, ICR1 and TCNT1 aren't truncated
*  - Ensure 16 bit registers accesses are atomic - run with interrupts disabled when accessing
*  - Remove global enable of interrupts (sei())- could be running within an interrupt routine)
*  - Counter reset to 1 rather than zero.  Datasheet vague on this, but experiment shows that overflow interrupt
*  - flag gets set whilst TCNT1 == BOTTOM, resulting in a phantom interrupt.  Could code around, but unnecessary complexity
*  - Start() amended to start counter and handle all interrupt enabling. 
*  - Point restart() at start().  Can't see any real difference

Andrew

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy