[time-nuts] First success with very simple, very low cost GPSDO, under $8

Hal Murray hmurray at megapathdsl.net
Wed Apr 9 09:08:27 UTC 2014

holrum at hotmail.com said:
> I'm not sure how the Arduino environment handles interrupts,  but in C you
> need to declare any variables altered by an interrupt as "volatile" so that
> the compiler optimization routines know not to assume they contain known
> values.  

Good point.

> Also any code that accesses them needs to do so with interrupts turned
> off...  otherwise you can wind up with corrupted values.

Not quite.  That may be the simplest way, but you can also use inter-process 
communications type tricks.  The classic for a two byte counter is to read 
high-low-high and try again if the high values don't match.  That assumes the 
interrupt routine updates low then (maybe) high.

These are my opinions.  I hate spam.

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