Used with KL25Z Freescale board to access the Avnet Wi-Go Battery charger

Dependents:   KL25Z_Batt_Test

Revision:
2:f52adda183d2
Parent:
1:4c20371cd5c2
--- 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;
+}