A simple WIP that logs data from a Grove sensor, and can send and receive information over USB and SMS.
Dependencies: DHT DS_1337 SDFileSystem USBDevice mbed
timers.cpp@0:2df78a4443cd, 2016-04-10 (annotated)
- Committer:
- Joseph Radford
- Date:
- Sun Apr 10 15:47:33 2016 +1000
- Revision:
- 0:2df78a4443cd
Initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Joseph Radford |
0:2df78a4443cd | 1 | #include "timers.h" |
Joseph Radford |
0:2df78a4443cd | 2 | |
Joseph Radford |
0:2df78a4443cd | 3 | MyTimers::MyTimers() |
Joseph Radford |
0:2df78a4443cd | 4 | { |
Joseph Radford |
0:2df78a4443cd | 5 | // initialise timers |
Joseph Radford |
0:2df78a4443cd | 6 | groveMeasureTimer = 0; |
Joseph Radford |
0:2df78a4443cd | 7 | gprsPowerTimer = 0; |
Joseph Radford |
0:2df78a4443cd | 8 | gprsRxTxTimer = 0; |
Joseph Radford |
0:2df78a4443cd | 9 | sdWaitErrorTimer = 0; |
Joseph Radford |
0:2df78a4443cd | 10 | measFlashTimer = 0; |
Joseph Radford |
0:2df78a4443cd | 11 | |
Joseph Radford |
0:2df78a4443cd | 12 | m_tick = new Ticker(); |
Joseph Radford |
0:2df78a4443cd | 13 | // configure the ticker object to run every 1ms, and to call \sa run when it does so. |
Joseph Radford |
0:2df78a4443cd | 14 | m_tick->attach(this, &MyTimers::run, 0.001); |
Joseph Radford |
0:2df78a4443cd | 15 | } |
Joseph Radford |
0:2df78a4443cd | 16 | |
Joseph Radford |
0:2df78a4443cd | 17 | MyTimers::~MyTimers() |
Joseph Radford |
0:2df78a4443cd | 18 | { |
Joseph Radford |
0:2df78a4443cd | 19 | delete m_tick; |
Joseph Radford |
0:2df78a4443cd | 20 | } |
Joseph Radford |
0:2df78a4443cd | 21 | |
Joseph Radford |
0:2df78a4443cd | 22 | void MyTimers::run() |
Joseph Radford |
0:2df78a4443cd | 23 | { |
Joseph Radford |
0:2df78a4443cd | 24 | // decrement each timer in the class |
Joseph Radford |
0:2df78a4443cd | 25 | if (groveMeasureTimer) groveMeasureTimer--; |
Joseph Radford |
0:2df78a4443cd | 26 | if (gprsPowerTimer ) gprsPowerTimer--; |
Joseph Radford |
0:2df78a4443cd | 27 | if (gprsRxTxTimer ) gprsRxTxTimer--; |
Joseph Radford |
0:2df78a4443cd | 28 | if (sdWaitErrorTimer ) sdWaitErrorTimer--; |
Joseph Radford |
0:2df78a4443cd | 29 | if (measFlashTimer ) measFlashTimer--; |
Joseph Radford |
0:2df78a4443cd | 30 | } |
Joseph Radford |
0:2df78a4443cd | 31 | |
Joseph Radford |
0:2df78a4443cd | 32 | |
Joseph Radford |
0:2df78a4443cd | 33 | void MyTimers::SetTimer(eTimerType timertype, unsigned long time_ms) |
Joseph Radford |
0:2df78a4443cd | 34 | { |
Joseph Radford |
0:2df78a4443cd | 35 | // see which timer we have to set, and set it |
Joseph Radford |
0:2df78a4443cd | 36 | switch(timertype) |
Joseph Radford |
0:2df78a4443cd | 37 | { |
Joseph Radford |
0:2df78a4443cd | 38 | case tmr_GroveMeasure: |
Joseph Radford |
0:2df78a4443cd | 39 | groveMeasureTimer = time_ms; |
Joseph Radford |
0:2df78a4443cd | 40 | break; |
Joseph Radford |
0:2df78a4443cd | 41 | case tmr_GprsPower: |
Joseph Radford |
0:2df78a4443cd | 42 | gprsPowerTimer = time_ms; |
Joseph Radford |
0:2df78a4443cd | 43 | break; |
Joseph Radford |
0:2df78a4443cd | 44 | case tmr_GprsRxTx: |
Joseph Radford |
0:2df78a4443cd | 45 | gprsRxTxTimer = time_ms; |
Joseph Radford |
0:2df78a4443cd | 46 | break; |
Joseph Radford |
0:2df78a4443cd | 47 | case tmr_SdWaitError: |
Joseph Radford |
0:2df78a4443cd | 48 | sdWaitErrorTimer = time_ms; |
Joseph Radford |
0:2df78a4443cd | 49 | break; |
Joseph Radford |
0:2df78a4443cd | 50 | case tmr_MeasFlash: |
Joseph Radford |
0:2df78a4443cd | 51 | measFlashTimer = time_ms; |
Joseph Radford |
0:2df78a4443cd | 52 | break; |
Joseph Radford |
0:2df78a4443cd | 53 | } |
Joseph Radford |
0:2df78a4443cd | 54 | } |
Joseph Radford |
0:2df78a4443cd | 55 | |
Joseph Radford |
0:2df78a4443cd | 56 | unsigned long MyTimers::GetTimer(eTimerType timertype) |
Joseph Radford |
0:2df78a4443cd | 57 | { |
Joseph Radford |
0:2df78a4443cd | 58 | // see which timer we have to get, and return it. |
Joseph Radford |
0:2df78a4443cd | 59 | switch(timertype) |
Joseph Radford |
0:2df78a4443cd | 60 | { |
Joseph Radford |
0:2df78a4443cd | 61 | case tmr_GroveMeasure: |
Joseph Radford |
0:2df78a4443cd | 62 | return groveMeasureTimer; |
Joseph Radford |
0:2df78a4443cd | 63 | case tmr_GprsPower: |
Joseph Radford |
0:2df78a4443cd | 64 | return gprsPowerTimer; |
Joseph Radford |
0:2df78a4443cd | 65 | case tmr_GprsRxTx: |
Joseph Radford |
0:2df78a4443cd | 66 | return gprsRxTxTimer; |
Joseph Radford |
0:2df78a4443cd | 67 | case tmr_SdWaitError: |
Joseph Radford |
0:2df78a4443cd | 68 | return sdWaitErrorTimer; |
Joseph Radford |
0:2df78a4443cd | 69 | case tmr_MeasFlash: |
Joseph Radford |
0:2df78a4443cd | 70 | return measFlashTimer; |
Joseph Radford |
0:2df78a4443cd | 71 | } |
Joseph Radford |
0:2df78a4443cd | 72 | return 0; |
Joseph Radford |
0:2df78a4443cd | 73 | } |
Joseph Radford |
0:2df78a4443cd | 74 |