Pages: [1]   Go Down
Author Topic: TimerOne updates  (Read 353 times)
0 Members and 1 Guest are viewing this topic.
Kent
Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Pages: [1]   Go Up
Jump to: