diff options
author | fishsoupisgood <github@madingley.org> | 2019-02-20 02:39:38 +0000 |
---|---|---|
committer | fishsoupisgood <github@madingley.org> | 2019-02-20 02:39:38 +0000 |
commit | c93861c733ced9c6659241cea69c7feed56afcce (patch) | |
tree | edcef2f980ae99f8ff8746c585eaf611c940e9ef /app/msf.c | |
parent | 971cc458aea21832a20b1b087185659d8e9ec2b3 (diff) | |
download | clock-c93861c733ced9c6659241cea69c7feed56afcce.tar.gz clock-c93861c733ced9c6659241cea69c7feed56afcce.tar.bz2 clock-c93861c733ced9c6659241cea69c7feed56afcce.zip |
use OCXO, and auto fail-over between different clock sources
Diffstat (limited to 'app/msf.c')
-rw-r--r-- | app/msf.c | 22 |
1 files changed, 19 insertions, 3 deletions
@@ -8,7 +8,9 @@ static Event_ring msf_ring; -uint64_t msf_last_second; +static uint64_t msf_last_second; +uint64_t msf_last_happy; + void exti0_isr (void) @@ -25,6 +27,19 @@ void exti0_isr (void) msf_ring.events[msf_ring.tx_ptr].value = v; msf_ring.tx_ptr = (msf_ring.tx_ptr + 1) & ERING_MASK; +#if 0 + + if (time_known) { + uint64_t abs = abs_extend (now); + EPOCH e = pll_decompose (abs); + UTC u = time_epoch_to_utc (e); + + printf ("QRR %d.%09d %d\r\n", (u.minute * 60) + u.second, u.nanosecond, (int) !v); + printf ("QRR %d.%09d %d\r\n", (u.minute * 60) + u.second, u.nanosecond, (int) v); + } + +#endif + nvic_enable_irq (NVIC_EXTI0_IRQ); } @@ -89,9 +104,10 @@ static void process_bits (uint64_t abs) msf_time = time_utc_to_epoch (u); + msf_last_happy = abs - (int64_t) 120 * (int64_t) HZ; + pll_set_offset (msf_time, abs); - stats_stamp (u, abs); dump_bits ("msfa", bitsa); dump_bits ("msfb", bitsb); @@ -170,7 +186,7 @@ void msf_dispatch (void) abs = abs_extend (now); msf_last_second = abs; - //pll_dispatch (abs); + pll_dispatch (msf_last_happy, abs, "MSF"); |