Backing up an unused program in case of future need

Dependencies:   mbed

Committer:
andrewboyson
Date:
Tue May 31 07:35:28 2016 +0000
Revision:
6:be97d38e0b01
Parent:
2:06fa34661f19
Child:
7:024ace6d943c
Moved to wait_us for delays below 100us and timer.read_us above. This replaced interrupts which worked but tended to be unreliable.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
andrewboyson 0:09f915e6f9f6 1 #include "mbed.h"
andrewboyson 0:09f915e6f9f6 2 #define ONE_MILLION 1000000
andrewboyson 0:09f915e6f9f6 3
andrewboyson 6:be97d38e0b01 4 static Ticker ticker;
andrewboyson 6:be97d38e0b01 5 static volatile uint64_t unixTime16ths;
andrewboyson 0:09f915e6f9f6 6 static void tick(void)
andrewboyson 0:09f915e6f9f6 7 {
andrewboyson 0:09f915e6f9f6 8 unixTime16ths++;
andrewboyson 0:09f915e6f9f6 9 }
andrewboyson 0:09f915e6f9f6 10 void TimeSet(uint32_t t)
andrewboyson 0:09f915e6f9f6 11 {
andrewboyson 0:09f915e6f9f6 12 unixTime16ths = (uint64_t)t << 4;
andrewboyson 0:09f915e6f9f6 13 }
andrewboyson 0:09f915e6f9f6 14 uint32_t TimeGet()
andrewboyson 0:09f915e6f9f6 15 {
andrewboyson 0:09f915e6f9f6 16 return unixTime16ths >> 4;
andrewboyson 0:09f915e6f9f6 17 }
andrewboyson 0:09f915e6f9f6 18 void TimeSet16ths(uint64_t t)
andrewboyson 0:09f915e6f9f6 19 {
andrewboyson 0:09f915e6f9f6 20 unixTime16ths = t;
andrewboyson 0:09f915e6f9f6 21 }
andrewboyson 0:09f915e6f9f6 22 uint64_t TimeGet16ths()
andrewboyson 0:09f915e6f9f6 23 {
andrewboyson 0:09f915e6f9f6 24 return unixTime16ths;
andrewboyson 6:be97d38e0b01 25 }
andrewboyson 6:be97d38e0b01 26 static Timer timer;
andrewboyson 6:be97d38e0b01 27 int TimeScanUs = 0;
andrewboyson 6:be97d38e0b01 28 int TimeMain()
andrewboyson 6:be97d38e0b01 29 {
andrewboyson 6:be97d38e0b01 30 int scanUs = timer.read_us();
andrewboyson 6:be97d38e0b01 31 timer.reset();
andrewboyson 6:be97d38e0b01 32 timer.start();
andrewboyson 6:be97d38e0b01 33 if (scanUs > TimeScanUs) TimeScanUs++;
andrewboyson 6:be97d38e0b01 34 if (scanUs < TimeScanUs) TimeScanUs--;
andrewboyson 6:be97d38e0b01 35 return 0;
andrewboyson 6:be97d38e0b01 36 }
andrewboyson 6:be97d38e0b01 37 int TimeInit()
andrewboyson 6:be97d38e0b01 38 {
andrewboyson 6:be97d38e0b01 39 ticker.attach_us(&tick, ONE_MILLION >> 4);
andrewboyson 6:be97d38e0b01 40 timer.stop();
andrewboyson 6:be97d38e0b01 41 timer.reset();
andrewboyson 6:be97d38e0b01 42 return 0;
andrewboyson 6:be97d38e0b01 43 }