Local library

Dependencies:   WakeUp PinDetect

Dependents:   Inductive_Sensor Inductive_Sensor_Jasper Inductive_Sensor_3

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?

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 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