From 75a61c57fb0402f777bfa828dd71818a97ed54a4 Mon Sep 17 00:00:00 2001 From: David Lamparter Date: Sun, 1 Apr 2012 00:20:25 +0200 Subject: original dcf77 C code --- timebase.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 timebase.c (limited to 'timebase.c') diff --git a/timebase.c b/timebase.c new file mode 100644 index 0000000..3b97e2b --- /dev/null +++ b/timebase.c @@ -0,0 +1,61 @@ +#include "main.h" +#include "timebase.h" + + // at 12MHz: +#define T0COUNT (XTAL / 1024 / 64) // 183 +#define T0SECERR (XTAL - 1024L * 64 * T0COUNT) // 6912 +#define T0COUNTSEC (T0COUNT + T0SECERR / 1024) // 189 +#define T0MINERR (XTAL - 1024 * (63 * T0COUNT + T0COUNTSEC)) // 768 +#define T0COUNTMIN (T0COUNTSEC + (T0MINERR * 60 + 512) / 1024) // 234 + +// 234 = 12000000 Hz +// 233 = 12000017 Hz = 4s/month + + +u8 timeflags; +u8 dcf77_period; +u8 dcf77_pulse; +u8 ct_64Hz; // 64 Hz counter (4sec) + + +void timebase_init( void ) +{ + TCCR0 = 1<