Used for testing battery sense circuit, looking for max and min levels. Allow for finding true empty, half and full values for driving LEDs for example
Dependencies: mbed MPL3115A2 TSI WiGo_BattCharger
main.cpp@1:b1921e153d21, 2013-05-17 (annotated)
- Committer:
- monpjc
- Date:
- Fri May 17 10:42:54 2013 +0000
- Revision:
- 1:b1921e153d21
- Parent:
- 0:17ad5a30ff25
- Child:
- 2:c08efa9effc8
Converted Batt code to a Lib
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
monpjc | 0:17ad5a30ff25 | 1 | #include "mbed.h" |
monpjc | 1:b1921e153d21 | 2 | #include "WiGo_BattCharger.h" |
monpjc | 0:17ad5a30ff25 | 3 | |
monpjc | 0:17ad5a30ff25 | 4 | #define RGB_LED_ON 0 |
monpjc | 0:17ad5a30ff25 | 5 | #define RGB_LED_OFF 1 |
monpjc | 0:17ad5a30ff25 | 6 | |
monpjc | 0:17ad5a30ff25 | 7 | DigitalOut myled1(LED1); |
monpjc | 0:17ad5a30ff25 | 8 | DigitalOut myled2(LED2); |
monpjc | 0:17ad5a30ff25 | 9 | DigitalOut myled3(LED3); |
monpjc | 0:17ad5a30ff25 | 10 | |
monpjc | 0:17ad5a30ff25 | 11 | Serial pc(USBTX, USBRX); |
monpjc | 0:17ad5a30ff25 | 12 | |
monpjc | 1:b1921e153d21 | 13 | WiGo_BattCharger Batt( BATT_LOW, BATT_MED, BATT_FULL, CHRG_EN1, CHRG_EN2, CHRG_SNS_EN, CHRG_SNS, CHRG_POK, CHRG_CHG); |
monpjc | 0:17ad5a30ff25 | 14 | |
monpjc | 0:17ad5a30ff25 | 15 | float max_batt; |
monpjc | 0:17ad5a30ff25 | 16 | float batt_lvl; |
monpjc | 0:17ad5a30ff25 | 17 | |
monpjc | 0:17ad5a30ff25 | 18 | int main() |
monpjc | 0:17ad5a30ff25 | 19 | { |
monpjc | 1:b1921e153d21 | 20 | Batt.init(); |
monpjc | 1:b1921e153d21 | 21 | Batt.sense_en(1); |
monpjc | 0:17ad5a30ff25 | 22 | |
monpjc | 0:17ad5a30ff25 | 23 | wait(0.5); |
monpjc | 1:b1921e153d21 | 24 | max_batt = Batt.read(); |
monpjc | 1:b1921e153d21 | 25 | |
monpjc | 0:17ad5a30ff25 | 26 | |
monpjc | 0:17ad5a30ff25 | 27 | while(1) { |
monpjc | 0:17ad5a30ff25 | 28 | |
monpjc | 0:17ad5a30ff25 | 29 | //If charging then blink Blue led to show we are alive |
monpjc | 1:b1921e153d21 | 30 | if( Batt.charging() == CHARGING ) { |
monpjc | 0:17ad5a30ff25 | 31 | myled2 = RGB_LED_OFF; |
monpjc | 0:17ad5a30ff25 | 32 | myled3 = RGB_LED_OFF; |
monpjc | 0:17ad5a30ff25 | 33 | |
monpjc | 0:17ad5a30ff25 | 34 | myled1 = RGB_LED_ON; |
monpjc | 0:17ad5a30ff25 | 35 | wait(0.1); |
monpjc | 0:17ad5a30ff25 | 36 | myled1 = RGB_LED_OFF; |
monpjc | 0:17ad5a30ff25 | 37 | wait(0.9); |
monpjc | 0:17ad5a30ff25 | 38 | } |
monpjc | 0:17ad5a30ff25 | 39 | |
monpjc | 0:17ad5a30ff25 | 40 | //If no power applied (via USB) then turn all on, blink Bled led off |
monpjc | 1:b1921e153d21 | 41 | if( Batt.supply() != POWER_OK ) { |
monpjc | 0:17ad5a30ff25 | 42 | myled2 = RGB_LED_ON; |
monpjc | 0:17ad5a30ff25 | 43 | myled3 = RGB_LED_ON; |
monpjc | 0:17ad5a30ff25 | 44 | |
monpjc | 0:17ad5a30ff25 | 45 | myled1 = RGB_LED_OFF; |
monpjc | 0:17ad5a30ff25 | 46 | wait(0.1); |
monpjc | 0:17ad5a30ff25 | 47 | myled1 = RGB_LED_ON; |
monpjc | 0:17ad5a30ff25 | 48 | wait(0.9); |
monpjc | 0:17ad5a30ff25 | 49 | } |
monpjc | 0:17ad5a30ff25 | 50 | |
monpjc | 1:b1921e153d21 | 51 | Batt.LEDupdate(); |
monpjc | 0:17ad5a30ff25 | 52 | |
monpjc | 1:b1921e153d21 | 53 | batt_lvl = Batt.read(); |
monpjc | 0:17ad5a30ff25 | 54 | if( batt_lvl > max_batt ) { |
monpjc | 0:17ad5a30ff25 | 55 | max_batt = batt_lvl; |
monpjc | 0:17ad5a30ff25 | 56 | } |
monpjc | 0:17ad5a30ff25 | 57 | |
monpjc | 1:b1921e153d21 | 58 | pc.printf(">%f Max:%f\n\r", batt_lvl, max_batt); |
monpjc | 0:17ad5a30ff25 | 59 | } |
monpjc | 0:17ad5a30ff25 | 60 | } |