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:
frankvnk
Date:
2013-09-06
Revision:
3:fb966ae74766
Parent:
2:f52adda183d2

File content as of revision 3:fb966ae74766:

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

WiGo_BattCharger::WiGo_BattCharger( PinName en1, PinName en2, PinName snsen, PinName sense,
                                    PinName supplystate, PinName chargestate )
                                    : _en1(en1), _en2(en2), _snsen(snsen), _sense(sense),
                                      _supplystate(supplystate), _chargestate(chargestate)
{
    _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;
}

unsigned short WiGo_BattCharger::readRaw( void )
{
    return _sense.read_u16();
}

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

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

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

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;
}