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

Dependents:   Wi-Go_IOT_Demo IoT_World_Hackathon_WiGo_NSP_Demo Wi-Go_IOT_Demo_MKII

Fork of WiGo_BattCharger by Paul Clarke

Modified BattCharger from https://mbed.org/users/monpjc/code/WiGo_BattCharger/ - removed LED pins and added raw read.

WiGo_BattCharger.cpp

Committer:
monpjc
Date:
2013-05-17
Revision:
1:4c20371cd5c2
Parent:
0:d52ea6d270c0
Child:
2:f52adda183d2

File content as of revision 1:4c20371cd5c2:

#include "WiGo_BattCharger.h"
#include "mbed.h"

WiGo_BattCharger::WiGo_BattCharger( PinName battlow, PinName battmed, PinName battfull, PinName en1, PinName en2, PinName snsen, PinName sense, PinName supplystate, PinName chargestate ) : _battlow(battlow), _battmed(battmed), _battfull(battfull), _en1(en1), _en2(en2), _snsen(snsen), _sense(sense), _supplystate(supplystate), _chargestate(chargestate)
{
    _battlow = BATT_LED_OFF; //Default State
    _battmed = BATT_LED_OFF;
    _battfull = BATT_LED_OFF;
    _en1 = 0;               //100mA Charge
    _en2 = 0;
    _snsen = 1;             //Off
}

void WiGo_BattCharger::init( int 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;
            break;
    }
}

void WiGo_BattCharger::sense_en( int n)
{
    if( n == 0 )
        _snsen = 1;
    else
        _snsen = 0;
}

float WiGo_BattCharger::read( void )
{
    return _sense;
}

int WiGo_BattCharger::charging( void )
{
    return _chargestate;
}

int WiGo_BattCharger::supply( void )
{
    return _supplystate;
}

void WiGo_BattCharger::LEDupdate( void )
{
    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( 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;
    }
}