Local library
Dependencies: WakeUp PinDetect
Dependents: Inductive_Sensor Inductive_Sensor_Jasper Inductive_Sensor_3
Bob.cpp@3:68c005d410e1, 2016-01-18 (annotated)
- Committer:
- bobgiesberts
- Date:
- Mon Jan 18 15:41:23 2016 +0000
- Revision:
- 3:68c005d410e1
- Parent:
- 2:681ecede6dcb
- Child:
- 4:9c3c8eb56a2b
Changes: direct access to SD enable with void SDon() and void SDoff().
Who changed what in which revision?
User | Revision | Line number | New 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 | 2:681ecede6dcb | 13 | #include "WakeUp.h" |
bobgiesberts | 0:17943815800f | 14 | |
bobgiesberts | 2:681ecede6dcb | 15 | |
bobgiesberts | 2:681ecede6dcb | 16 | 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 | 17 | { |
bobgiesberts | 0:17943815800f | 18 | _red = 0; |
bobgiesberts | 0:17943815800f | 19 | _green = 0; |
bobgiesberts | 0:17943815800f | 20 | |
bobgiesberts | 2:681ecede6dcb | 21 | _sd_enable = 1; |
bobgiesberts | 2:681ecede6dcb | 22 | |
bobgiesberts | 2:681ecede6dcb | 23 | _sd_card_detect = new DigitalIn( sd_present ); |
bobgiesberts | 2:681ecede6dcb | 24 | _sd_card_detect->mode( PullUp ); |
bobgiesberts | 0:17943815800f | 25 | |
bobgiesberts | 2:681ecede6dcb | 26 | _batt = new AnalogIn( battery ); |
bobgiesberts | 2:681ecede6dcb | 27 | |
bobgiesberts | 2:681ecede6dcb | 28 | _V_Det = new DigitalIn( V_Det ); |
bobgiesberts | 2:681ecede6dcb | 29 | _V_Det->mode( PullUp ); |
bobgiesberts | 2:681ecede6dcb | 30 | |
bobgiesberts | 3:68c005d410e1 | 31 | // WakeUp::calibrate(); |
bobgiesberts | 0:17943815800f | 32 | } |
bobgiesberts | 0:17943815800f | 33 | |
bobgiesberts | 0:17943815800f | 34 | bool Bob::checkSD(void) |
bobgiesberts | 0:17943815800f | 35 | { |
bobgiesberts | 3:68c005d410e1 | 36 | _sd_enable.write(1); |
bobgiesberts | 2:681ecede6dcb | 37 | return !_sd_card_detect->read(); |
bobgiesberts | 2:681ecede6dcb | 38 | } |
bobgiesberts | 2:681ecede6dcb | 39 | |
bobgiesberts | 2:681ecede6dcb | 40 | void Bob::sleep(int s) |
bobgiesberts | 2:681ecede6dcb | 41 | { |
bobgiesberts | 3:68c005d410e1 | 42 | _sd_enable.write(0); // unpower SD-card + unpower sensor |
bobgiesberts | 3:68c005d410e1 | 43 | WakeUp::calibrate(); |
bobgiesberts | 2:681ecede6dcb | 44 | WakeUp::set( s ); |
bobgiesberts | 2:681ecede6dcb | 45 | deepsleep(); |
bobgiesberts | 0:17943815800f | 46 | } |
bobgiesberts | 0:17943815800f | 47 | |
bobgiesberts | 2:681ecede6dcb | 48 | void Bob::wakeup(void) |
bobgiesberts | 2:681ecede6dcb | 49 | { |
bobgiesberts | 3:68c005d410e1 | 50 | _sd_enable.write(1); // power SD-card + unpower sensor |
bobgiesberts | 2:681ecede6dcb | 51 | wait(0.3); |
bobgiesberts | 2:681ecede6dcb | 52 | } |
bobgiesberts | 1:2234e0b31d94 | 53 | |
bobgiesberts | 3:68c005d410e1 | 54 | void Bob::SDoff(void) |
bobgiesberts | 3:68c005d410e1 | 55 | { |
bobgiesberts | 3:68c005d410e1 | 56 | _sd_enable.write(0); |
bobgiesberts | 3:68c005d410e1 | 57 | } |
bobgiesberts | 3:68c005d410e1 | 58 | |
bobgiesberts | 3:68c005d410e1 | 59 | void Bob::SDon(void) |
bobgiesberts | 3:68c005d410e1 | 60 | { |
bobgiesberts | 3:68c005d410e1 | 61 | _sd_enable.write(1); |
bobgiesberts | 3:68c005d410e1 | 62 | } |
bobgiesberts | 1:2234e0b31d94 | 63 | |
bobgiesberts | 2:681ecede6dcb | 64 | // battery voltage should be 3.1V (min) < 3.7V (typ) < 4.22V (max) |
bobgiesberts | 2:681ecede6dcb | 65 | float Bob::battery(void) |
bobgiesberts | 2:681ecede6dcb | 66 | { |
bobgiesberts | 2:681ecede6dcb | 67 | return (float)_batt->read() * 3.0 * 2.0; |
bobgiesberts | 2:681ecede6dcb | 68 | } |
bobgiesberts | 2:681ecede6dcb | 69 | |
bobgiesberts | 0:17943815800f | 70 | void Bob::flash( int n ) |
bobgiesberts | 0:17943815800f | 71 | { |
bobgiesberts | 0:17943815800f | 72 | _red = 0; |
bobgiesberts | 0:17943815800f | 73 | _green = 0; |
bobgiesberts | 0:17943815800f | 74 | for(int i=0; i<n*2; i++){ |
bobgiesberts | 0:17943815800f | 75 | _red = 1-_red; _green = 1-_green; wait(0.2); |
bobgiesberts | 0:17943815800f | 76 | } |
bobgiesberts | 0:17943815800f | 77 | } |
bobgiesberts | 0:17943815800f | 78 | |
bobgiesberts | 0:17943815800f | 79 | void Bob::flash_red( int n ) |
bobgiesberts | 0:17943815800f | 80 | { |
bobgiesberts | 0:17943815800f | 81 | _red = 0; |
bobgiesberts | 0:17943815800f | 82 | for(int i=0; i<n*2; i++){ |
bobgiesberts | 0:17943815800f | 83 | _red = 1-_red; wait(0.2); |
bobgiesberts | 0:17943815800f | 84 | } |
bobgiesberts | 0:17943815800f | 85 | } |
bobgiesberts | 0:17943815800f | 86 | |
bobgiesberts | 0:17943815800f | 87 | void Bob::flash_green( int n ) |
bobgiesberts | 0:17943815800f | 88 | { |
bobgiesberts | 0:17943815800f | 89 | _green = 0; |
bobgiesberts | 0:17943815800f | 90 | for(int i=0; i<n*2; i++){ |
bobgiesberts | 0:17943815800f | 91 | _green = 1-_green; wait(0.2); |
bobgiesberts | 0:17943815800f | 92 | } |
bobgiesberts | 0:17943815800f | 93 | } |
bobgiesberts | 0:17943815800f | 94 | |
bobgiesberts | 1:2234e0b31d94 | 95 | void Bob::red(void) { _red = 1; } |
bobgiesberts | 1:2234e0b31d94 | 96 | void Bob::green(void) { _green = 1; } |
bobgiesberts | 0:17943815800f | 97 | |
bobgiesberts | 2:681ecede6dcb | 98 | void Bob::redoff(void) { _red = 0; } |
bobgiesberts | 2:681ecede6dcb | 99 | void Bob::greenoff(void) { _green = 0; } |
bobgiesberts | 2:681ecede6dcb | 100 |