[time-nuts] 32768Hz using DDS

Chris Cheney chris.cheney at tesco.net
Thu Jul 24 08:36:07 UTC 2008


On 24 Jul 2008 at 8:27, Murray Greenman wrote:

>  and second that the time around the loop is
> changed by the instructions involved in loading.

Well, the timing can be kept constant by always adding in a value.

For the AVR, using a branch to test for overflow is not necessary: ROL 
followed by ANDI will get carry (instead of overflow as we are performing 
unsigned arithmetic) into the bottom bit of a register from where it can 
be used to index for the appropriate value (0 or 52,947) to be added. 

So the relevant calculation can be done with straight-through code, 
without any branches, giving a constant instruction count.

Regards from Cambridge

Chris
G3RSE





More information about the Time-nuts_lists.febo.com mailing list