The 8-bit PIC family (I'm working with pic18f46k22) offers some timers (timers1/3/5) that can work in both asynchronous and synchronous modes when clocked from an external source.
The obvious differences are:
- asynchronous operation gives the possibility for timer to run in sleep mode
- An asynchronous source can clock the timer faster since it is independent on the system clock (table 27-12):
and as for the advantages for synchronizing the external clock source... well, I can't see any. One disadvantage to think of is the possible corruption of data if the CPU tries to read the counter while it is incrementing, but the datasheet states:
12.5.1 READING AND WRITING TIMER1/3/5 IN ASYNCHRONOUS COUNTER MODE: Reading TMRxH or TMRxL while the timer is running from an external asynchronous clock will ensure a valid read (taken care of in hardware).
Can someone please explain why did they add the possibility to synchronize the external clock source with the internal phase clocks? I feel that I'm missing something. Thanx a lot