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

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?

UserRevisionLine numberNew 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 }