Local library

Dependencies:   WakeUp PinDetect

Dependents:   Inductive_Sensor Inductive_Sensor_Jasper Inductive_Sensor_3

Committer:
bobgiesberts
Date:
Wed Mar 30 12:00:43 2016 +0000
Revision:
4:9c3c8eb56a2b
Parent:
3:68c005d410e1
Child:
5:c2468a69aacb
sleep in ms (instead of s). Corrected for calibration time (- 100 ms)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bobgiesberts 0:17943815800f 1 /**
bobgiesberts 0:17943815800f 2 * @file Bob.cpp
bobgiesberts 0:17943815800f 3 * @brief just so functions to communicate with the
bobgiesberts 0:17943815800f 4 * processor board for the LDC1101
bobgiesberts 0:17943815800f 5 *
bobgiesberts 0:17943815800f 6 * @author Bob Giesberts
bobgiesberts 0:17943815800f 7 *
bobgiesberts 0:17943815800f 8 * @date 2015-12-18
bobgiesberts 0:17943815800f 9 */
bobgiesberts 0:17943815800f 10
bobgiesberts 0:17943815800f 11 #include "Bob.h"
bobgiesberts 0:17943815800f 12 #include "mbed.h"
bobgiesberts 4:9c3c8eb56a2b 13 #include "mbed_debug.h"
bobgiesberts 2:681ecede6dcb 14 #include "WakeUp.h"
bobgiesberts 0:17943815800f 15
bobgiesberts 2:681ecede6dcb 16
bobgiesberts 2:681ecede6dcb 17 Bob::Bob(PinName redled, PinName greenled, PinName sd_enable, PinName sd_present, PinName battery, PinName V_Det) : _red(redled), _green(greenled), _sd_enable(sd_enable)
bobgiesberts 0:17943815800f 18 {
bobgiesberts 0:17943815800f 19 _red = 0;
bobgiesberts 0:17943815800f 20 _green = 0;
bobgiesberts 0:17943815800f 21
bobgiesberts 2:681ecede6dcb 22 _sd_enable = 1;
bobgiesberts 2:681ecede6dcb 23
bobgiesberts 2:681ecede6dcb 24 _sd_card_detect = new DigitalIn( sd_present );
bobgiesberts 2:681ecede6dcb 25 _sd_card_detect->mode( PullUp );
bobgiesberts 0:17943815800f 26
bobgiesberts 2:681ecede6dcb 27 _batt = new AnalogIn( battery );
bobgiesberts 2:681ecede6dcb 28
bobgiesberts 2:681ecede6dcb 29 _V_Det = new DigitalIn( V_Det );
bobgiesberts 2:681ecede6dcb 30 _V_Det->mode( PullUp );
bobgiesberts 2:681ecede6dcb 31
bobgiesberts 3:68c005d410e1 32 // WakeUp::calibrate();
bobgiesberts 0:17943815800f 33 }
bobgiesberts 0:17943815800f 34
bobgiesberts 0:17943815800f 35 bool Bob::checkSD(void)
bobgiesberts 0:17943815800f 36 {
bobgiesberts 3:68c005d410e1 37 _sd_enable.write(1);
bobgiesberts 2:681ecede6dcb 38 return !_sd_card_detect->read();
bobgiesberts 2:681ecede6dcb 39 }
bobgiesberts 2:681ecede6dcb 40
bobgiesberts 4:9c3c8eb56a2b 41 void Bob::wakeup(void)
bobgiesberts 2:681ecede6dcb 42 {
bobgiesberts 4:9c3c8eb56a2b 43 _sd_enable.write(1); // power SD-card + power sensor
bobgiesberts 4:9c3c8eb56a2b 44 // wait(0.3); // this shouldn't be necessary because loading the LDC library already takes 0.81 s
bobgiesberts 0:17943815800f 45 }
bobgiesberts 0:17943815800f 46
bobgiesberts 4:9c3c8eb56a2b 47 void Bob::beforesleep(void)
bobgiesberts 3:68c005d410e1 48 {
bobgiesberts 3:68c005d410e1 49 _sd_enable.write(0);
bobgiesberts 3:68c005d410e1 50 }
bobgiesberts 3:68c005d410e1 51
bobgiesberts 4:9c3c8eb56a2b 52 void Bob::sleep(uint32_t ms)
bobgiesberts 3:68c005d410e1 53 {
bobgiesberts 4:9c3c8eb56a2b 54 _sd_enable.write(0); // unpower SD-card + unpower sensor
bobgiesberts 4:9c3c8eb56a2b 55 WakeUp::calibrate(); // calibration takes 100 ms
bobgiesberts 4:9c3c8eb56a2b 56 WakeUp::set_ms( ms - 100 ); // substract this from the total sleep time
bobgiesberts 4:9c3c8eb56a2b 57 deepsleep();
bobgiesberts 3:68c005d410e1 58 }
bobgiesberts 1:2234e0b31d94 59
bobgiesberts 2:681ecede6dcb 60 // battery voltage should be 3.1V (min) < 3.7V (typ) < 4.22V (max)
bobgiesberts 2:681ecede6dcb 61 float Bob::battery(void)
bobgiesberts 2:681ecede6dcb 62 {
bobgiesberts 2:681ecede6dcb 63 return (float)_batt->read() * 3.0 * 2.0;
bobgiesberts 2:681ecede6dcb 64 }
bobgiesberts 2:681ecede6dcb 65
bobgiesberts 0:17943815800f 66 void Bob::flash( int n )
bobgiesberts 0:17943815800f 67 {
bobgiesberts 0:17943815800f 68 _red = 0;
bobgiesberts 0:17943815800f 69 _green = 0;
bobgiesberts 0:17943815800f 70 for(int i=0; i<n*2; i++){
bobgiesberts 0:17943815800f 71 _red = 1-_red; _green = 1-_green; wait(0.2);
bobgiesberts 0:17943815800f 72 }
bobgiesberts 0:17943815800f 73 }
bobgiesberts 0:17943815800f 74
bobgiesberts 0:17943815800f 75 void Bob::flash_red( int n )
bobgiesberts 0:17943815800f 76 {
bobgiesberts 0:17943815800f 77 _red = 0;
bobgiesberts 0:17943815800f 78 for(int i=0; i<n*2; i++){
bobgiesberts 0:17943815800f 79 _red = 1-_red; wait(0.2);
bobgiesberts 0:17943815800f 80 }
bobgiesberts 0:17943815800f 81 }
bobgiesberts 0:17943815800f 82
bobgiesberts 0:17943815800f 83 void Bob::flash_green( int n )
bobgiesberts 0:17943815800f 84 {
bobgiesberts 0:17943815800f 85 _green = 0;
bobgiesberts 0:17943815800f 86 for(int i=0; i<n*2; i++){
bobgiesberts 0:17943815800f 87 _green = 1-_green; wait(0.2);
bobgiesberts 0:17943815800f 88 }
bobgiesberts 0:17943815800f 89 }
bobgiesberts 0:17943815800f 90
bobgiesberts 1:2234e0b31d94 91 void Bob::red(void) { _red = 1; }
bobgiesberts 1:2234e0b31d94 92 void Bob::green(void) { _green = 1; }
bobgiesberts 0:17943815800f 93
bobgiesberts 2:681ecede6dcb 94 void Bob::redoff(void) { _red = 0; }
bobgiesberts 2:681ecede6dcb 95 void Bob::greenoff(void) { _green = 0; }
bobgiesberts 2:681ecede6dcb 96
bobgiesberts 4:9c3c8eb56a2b 97
bobgiesberts 4:9c3c8eb56a2b 98
bobgiesberts 4:9c3c8eb56a2b 99
bobgiesberts 4:9c3c8eb56a2b 100
bobgiesberts 4:9c3c8eb56a2b 101
bobgiesberts 4:9c3c8eb56a2b 102