From 0397197d6029693847fd6b59c2ce12a8b82c4814 Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Fri, 12 Aug 2011 06:43:01 +0200 Subject: [PATCH] reenable charge led and workaround for daytrig --- firmware/applications/default.c | 24 ++++++++++++++++-------- firmware/basic/night.c | 26 +++++++++++++++----------- 2 files changed, 31 insertions(+), 19 deletions(-) diff --git a/firmware/applications/default.c b/firmware/applications/default.c index ea52100..b5a357c 100644 --- a/firmware/applications/default.c +++ b/firmware/applications/default.c @@ -108,16 +108,24 @@ 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); + char iodir= (GPIO_GPIO1DIR & (1 << (11) ))?1:0; + if(GetChrgStat()) { + if (iodir == gpioDirection_Input){ + IOCON_PIO1_11 = 0x0; + gpioSetDir(RB_LED3, gpioDirection_Output); + gpioSetValue (RB_LED3, 1); + LightCheck(); + } + } else { + if (iodir != gpioDirection_Input){ + gpioSetValue (RB_LED3, 0); + gpioSetDir(RB_LED3, gpioDirection_Input); + IOCON_PIO1_11 = 0x41; + LightCheck(); + } + } }; - */ if(GetVoltage()<3600){ IOCON_PIO1_11 = 0x0; diff --git a/firmware/basic/night.c b/firmware/basic/night.c index 97387d4..4a6d706 100644 --- a/firmware/basic/night.c +++ b/firmware/basic/night.c @@ -15,23 +15,27 @@ void LightCheck(void){ char iodir; iocon=IOCON_PIO1_11; -// iodir=gpioGetDir(RB_LED3); //LED3 is on pin 11 iodir= (GPIO_GPIO1DIR & (1 << (11) ))?1:0; - gpioSetDir(RB_LED3, gpioDirection_Input); - IOCON_PIO1_11 = IOCON_PIO1_11_FUNC_AD7|IOCON_PIO1_11_ADMODE_ANALOG; - light-=light/SAMPCT; - light += (adcRead(7)/2); - - gpioSetDir(RB_LED3, iodir); - IOCON_PIO1_11=iocon; + //gpioSetDir(RB_LED3, gpioDirection_Input); + if (iodir == gpioDirection_Input) { + IOCON_PIO1_11 = IOCON_PIO1_11_FUNC_AD7|IOCON_PIO1_11_ADMODE_ANALOG; + light-=light/SAMPCT; + light += (adcRead(7)/2); - if(_isnight && light/SAMPCT>(threshold+RANGE)) - _isnight=0; + gpioSetDir(RB_LED3, iodir); + IOCON_PIO1_11=iocon; - if(!_isnight && light/SAMPCT(threshold+RANGE)) + _isnight=0; + + if(!_isnight && light/SAMPCT