From e68960f0c7ff173781c1fbfef4951a8fdc0c1d30 Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Fri, 5 Aug 2011 01:22:34 +0200 Subject: [PATCH] Add charge led function --- firmware/applications/default.c | 9 +++++++++ firmware/basic/basic.h | 1 + firmware/basic/config.c | 1 + firmware/basic/config.h | 3 ++- firmware/basic/voltage.c | 9 ++++++++- 5 files changed, 21 insertions(+), 2 deletions(-) diff --git a/firmware/applications/default.c b/firmware/applications/default.c index 8a87a05..0584753 100644 --- a/firmware/applications/default.c +++ b/firmware/applications/default.c @@ -86,6 +86,15 @@ void tick_default(void) { EVERY(50,0){ + if(GLOBAL(chargeled)){ + IOCON_PIO1_11 = 0x0; + gpioSetDir(RB_LED3, gpioDirection_Output); + if(GetChrgStat()) + gpioSetValue (RB_LED3, 1); + else + gpioSetValue (RB_LED3, 0); + }; + if(GetVoltage()<3600){ IOCON_PIO1_11 = 0x0; gpioSetDir(RB_LED3, gpioDirection_Output); diff --git a/firmware/basic/basic.h b/firmware/basic/basic.h index ac0734a..2c84047 100644 --- a/firmware/basic/basic.h +++ b/firmware/basic/basic.h @@ -136,6 +136,7 @@ void delayms(uint32_t ms); // voltage.c void VoltageCheck(void); uint32_t GetVoltage(void); +uint8_t GetChrgStat(void); // night.c void LightCheck(void); diff --git a/firmware/basic/config.c b/firmware/basic/config.c index 351015f..7fad0a0 100644 --- a/firmware/basic/config.c +++ b/firmware/basic/config.c @@ -28,6 +28,7 @@ struct CDESC the_config[]= { {"flamemaxw", 255, 1, 255, 1, CFG_TYPE_FLAME}, {"flameminw", 0x8f, 1, 255, 1, CFG_TYPE_FLAME}, {"l0nick", 0, 0, 1 , 0, 0}, + {"chargeled", 1, 0, 1 , 0, 0}, { NULL, 0, 0, 0 , 0, 0}, }; diff --git a/firmware/basic/config.h b/firmware/basic/config.h index f018fc2..0d1d729 100644 --- a/firmware/basic/config.h +++ b/firmware/basic/config.h @@ -42,9 +42,10 @@ extern char nickl0[]; #define GLOBALflamemaxw (the_config[14].value) #define GLOBALflameminw (the_config[15].value) #define GLOBALl0nick (the_config[16].value) +#define GLOBALchargeled (the_config[17].value) #define GLOBALnickname (nickname) #define GLOBALnickfont (nickfont) -#define GLOBALnickl0 (nickl0) +#define GLOBALnickl0 (nickl0) #define GLOBAL(x) GLOBAL ## x diff --git a/firmware/basic/voltage.c b/firmware/basic/voltage.c index 6af313f..2ae6d12 100644 --- a/firmware/basic/voltage.c +++ b/firmware/basic/voltage.c @@ -3,10 +3,13 @@ #include "basic/basic.h" #include "funk/nrf24l01p.h" -uint32_t results=5000; +static uint32_t results=5000; +static uint8_t chrg=1; void VoltageCheck(void){ + chrg=gpioGetValue(RB_PWR_CHRG); + results = adcRead(1); results *= 10560; results /= 1024; @@ -24,3 +27,7 @@ void VoltageCheck(void){ uint32_t GetVoltage(void){ return results; }; + +uint8_t GetChrgStat(void){ + return !chrg; +};