Used with KL25Z Freescale board to access the Avnet Wi-Go Battery charger
Revision 2:f52adda183d2, committed 2013-05-17
- Comitter:
- monpjc
- Date:
- Fri May 17 20:13:01 2013 +0000
- Parent:
- 1:4c20371cd5c2
- Commit message:
- Added Light Sensor (Not Working)
Changed in this revision
WiGo_BattCharger.cpp | Show annotated file Show diff for this revision Revisions of this file |
WiGo_BattCharger.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/WiGo_BattCharger.cpp Fri May 17 15:32:44 2013 +0000 +++ b/WiGo_BattCharger.cpp Fri May 17 20:13:01 2013 +0000 @@ -13,24 +13,23 @@ void WiGo_BattCharger::init( int n ) { - switch(n) - { + switch(n) { default: case 0: //100mA Charge _en1 = 0; _en2 = 0; break; - + case 1: //500mA _en1 = 0; _en2 = 1; break; - + case 2: //724mA _en1 = 1; _en2 = 0; break; - + case 3: //Suspend _en1 = 1; _en2 = 1; @@ -61,29 +60,54 @@ return _supplystate; } -void WiGo_BattCharger::LEDupdate( void ) +void WiGo_BattCharger::LEDupdate( int n ) { float batt_level; - sense_en(1); - batt_level = read(); - if( batt_level <= BATT_0 ) { - _battlow = BATT_LED_OFF; - _battmed = BATT_LED_OFF; - _battfull = BATT_LED_OFF; + + if( n == 1 ) { + sense_en(1); + batt_level = read(); + if( batt_level <= BATT_0 ) { + _battlow = BATT_LED_OFF; + _battmed = BATT_LED_OFF; + _battfull = BATT_LED_OFF; + } + if( batt_level > BATT_0 && batt_level <= 0.605 ) { + _battlow = BATT_LED_ON; + _battmed = BATT_LED_OFF; + _battfull = BATT_LED_OFF; + } + if( batt_level > 0.605 && batt_level <= BATT_100 ) { + _battlow = BATT_LED_ON; + _battmed = BATT_LED_ON; + _battfull = BATT_LED_OFF; + } + if( batt_level > BATT_100 ) { + _battlow = BATT_LED_ON; + _battmed = BATT_LED_ON; + _battfull = BATT_LED_ON; + } } - if( batt_level > BATT_0 && batt_level <= 0.605 ) { - _battlow = BATT_LED_ON; - _battmed = BATT_LED_OFF; - _battfull = BATT_LED_OFF; - } - if( batt_level > 0.605 && batt_level <= BATT_100 ) { - _battlow = BATT_LED_ON; - _battmed = BATT_LED_ON; - _battfull = BATT_LED_OFF; - } - if( batt_level > BATT_100 ) { - _battlow = BATT_LED_ON; - _battmed = BATT_LED_ON; - _battfull = BATT_LED_ON; + else + { + _battlow = BATT_LED_OFF; + _battmed = BATT_LED_OFF; + _battfull = BATT_LED_OFF; } } + +int WiGo_BattCharger::level( void ) +{ + float returnValue = 0; + float batt_level = read(); + + returnValue = ((batt_level - BATT_0) * (BATT_100 - BATT_0)) * 10000; + + if( returnValue > 100 ) + returnValue = 100; + + if( returnValue < 0 ) + returnValue = 0; + + return (int)returnValue; +}
--- a/WiGo_BattCharger.h Fri May 17 15:32:44 2013 +0000 +++ b/WiGo_BattCharger.h Fri May 17 20:13:01 2013 +0000 @@ -18,7 +18,11 @@ #define BATT_LED_ON 0 #define BATT_LED_OFF 1 #define BATT_0 0.53 -#define BATT_100 0.67 +#define BATT_100 0.63 +#define CHRG_100MA 0 +#define CHRG_500MA 1 +#define CHRG_740MA 2 +#define CHRG_STOP 3 class WiGo_BattCharger { @@ -38,7 +42,9 @@ int supply( void ); - void LEDupdate( void ); + void LEDupdate( int n ); + + int level( void ); protected: DigitalOut _battfull;