Local library
Dependencies: WakeUp PinDetect
Dependents: Inductive_Sensor Inductive_Sensor_Jasper Inductive_Sensor_3
Diff: Bob.cpp
- Revision:
- 2:681ecede6dcb
- Parent:
- 1:2234e0b31d94
- Child:
- 3:68c005d410e1
diff -r 2234e0b31d94 -r 681ecede6dcb Bob.cpp --- a/Bob.cpp Tue Jan 05 11:03:48 2016 +0000 +++ b/Bob.cpp Sat Jan 16 09:12:54 2016 +0000 @@ -10,34 +10,53 @@ #include "Bob.h" #include "mbed.h" +#include "WakeUp.h" -Bob::Bob(PinName redled, PinName greenled, PinName sd_enable, PinName sd_present) : _red(redled), _green(greenled), _sdE(sd_enable) + +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) { _red = 0; _green = 0; - _sdE = 1; - _sdP = new DigitalIn( sd_present ); - _sdP->mode( PullUp ); + _sd_enable = 1; + + _sd_card_detect = new DigitalIn( sd_present ); + _sd_card_detect->mode( PullUp ); + _batt = new AnalogIn( battery ); + + _V_Det = new DigitalIn( V_Det ); + _V_Det->mode( PullUp ); + + WakeUp::calibrate(); } bool Bob::checkSD(void) { - // Check if any card is present - if(_sdP->read() != 1) { - _green = 0; - return 1; - }else{ - green(); - return 0; - } + _sd_enable = 1; + return !_sd_card_detect->read(); +} + +void Bob::sleep(int s) +{ + _sd_enable = 0; // unpower SD-card + unpower sensor + WakeUp::set( s ); + deepsleep(); } -void Bob::sleep(void) { _sdE = 0; } -void Bob::wakeup(void) { _sdE = 1; wait(0.1); } +void Bob::wakeup(void) +{ + _sd_enable = 1; // power SD-card + unpower sensor + wait(0.3); +} +// battery voltage should be 3.1V (min) < 3.7V (typ) < 4.22V (max) +float Bob::battery(void) +{ + return (float)_batt->read() * 3.0 * 2.0; +} + void Bob::flash( int n ) { _red = 0; @@ -66,3 +85,6 @@ void Bob::red(void) { _red = 1; } void Bob::green(void) { _green = 1; } +void Bob::redoff(void) { _red = 0; } +void Bob::greenoff(void) { _green = 0; } +