Local library

Dependencies:   WakeUp PinDetect

Dependents:   Inductive_Sensor Inductive_Sensor_Jasper Inductive_Sensor_3

Committer:
bobgiesberts
Date:
Sat Jan 16 09:12:54 2016 +0000
Revision:
2:681ecede6dcb
Parent:
1:2234e0b31d94
Child:
3:68c005d410e1
Power management: deepsleep function

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 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 2:681ecede6dcb 31 WakeUp::calibrate();
bobgiesberts 0:17943815800f 32 }
bobgiesberts 0:17943815800f 33
bobgiesberts 0:17943815800f 34 bool Bob::checkSD(void)
bobgiesberts 0:17943815800f 35 {
bobgiesberts 2:681ecede6dcb 36 _sd_enable = 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 2:681ecede6dcb 42 _sd_enable = 0; // unpower SD-card + unpower sensor
bobgiesberts 2:681ecede6dcb 43 WakeUp::set( s );
bobgiesberts 2:681ecede6dcb 44 deepsleep();
bobgiesberts 0:17943815800f 45 }
bobgiesberts 0:17943815800f 46
bobgiesberts 2:681ecede6dcb 47 void Bob::wakeup(void)
bobgiesberts 2:681ecede6dcb 48 {
bobgiesberts 2:681ecede6dcb 49 _sd_enable = 1; // power SD-card + unpower sensor
bobgiesberts 2:681ecede6dcb 50 wait(0.3);
bobgiesberts 2:681ecede6dcb 51 }
bobgiesberts 1:2234e0b31d94 52
bobgiesberts 1:2234e0b31d94 53
bobgiesberts 2:681ecede6dcb 54 // battery voltage should be 3.1V (min) < 3.7V (typ) < 4.22V (max)
bobgiesberts 2:681ecede6dcb 55 float Bob::battery(void)
bobgiesberts 2:681ecede6dcb 56 {
bobgiesberts 2:681ecede6dcb 57 return (float)_batt->read() * 3.0 * 2.0;
bobgiesberts 2:681ecede6dcb 58 }
bobgiesberts 2:681ecede6dcb 59
bobgiesberts 0:17943815800f 60 void Bob::flash( int n )
bobgiesberts 0:17943815800f 61 {
bobgiesberts 0:17943815800f 62 _red = 0;
bobgiesberts 0:17943815800f 63 _green = 0;
bobgiesberts 0:17943815800f 64 for(int i=0; i<n*2; i++){
bobgiesberts 0:17943815800f 65 _red = 1-_red; _green = 1-_green; wait(0.2);
bobgiesberts 0:17943815800f 66 }
bobgiesberts 0:17943815800f 67 }
bobgiesberts 0:17943815800f 68
bobgiesberts 0:17943815800f 69 void Bob::flash_red( int n )
bobgiesberts 0:17943815800f 70 {
bobgiesberts 0:17943815800f 71 _red = 0;
bobgiesberts 0:17943815800f 72 for(int i=0; i<n*2; i++){
bobgiesberts 0:17943815800f 73 _red = 1-_red; wait(0.2);
bobgiesberts 0:17943815800f 74 }
bobgiesberts 0:17943815800f 75 }
bobgiesberts 0:17943815800f 76
bobgiesberts 0:17943815800f 77 void Bob::flash_green( int n )
bobgiesberts 0:17943815800f 78 {
bobgiesberts 0:17943815800f 79 _green = 0;
bobgiesberts 0:17943815800f 80 for(int i=0; i<n*2; i++){
bobgiesberts 0:17943815800f 81 _green = 1-_green; wait(0.2);
bobgiesberts 0:17943815800f 82 }
bobgiesberts 0:17943815800f 83 }
bobgiesberts 0:17943815800f 84
bobgiesberts 1:2234e0b31d94 85 void Bob::red(void) { _red = 1; }
bobgiesberts 1:2234e0b31d94 86 void Bob::green(void) { _green = 1; }
bobgiesberts 0:17943815800f 87
bobgiesberts 2:681ecede6dcb 88 void Bob::redoff(void) { _red = 0; }
bobgiesberts 2:681ecede6dcb 89 void Bob::greenoff(void) { _green = 0; }
bobgiesberts 2:681ecede6dcb 90