crashtest-r0ket/firmware/basic/night.c

48 lines
946 B
C
Raw Permalink Normal View History

#include <sysinit.h>
#include "basic/basic.h"
#include "basic/config.h"
2011-07-31 20:13:06 +00:00
#define SAMPCT (4)
2011-08-01 03:06:20 +00:00
uint32_t light=150*SAMPCT;
char _isnight=1;
2011-07-31 20:13:06 +00:00
#define threshold GLOBAL(daytrig)
#define RANGE GLOBAL(daytrighyst)
void LightCheck(void){
int iocon;
char iodir;
iocon=IOCON_PIO1_11;
2011-08-05 14:54:45 +00:00
//LED3 is on pin 11
iodir= (GPIO_GPIO1DIR & (1 << (11) ))?1:0;
//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);
gpioSetDir(RB_LED3, iodir);
IOCON_PIO1_11=iocon;
if(_isnight && light/SAMPCT>(threshold+RANGE))
_isnight=0;
if(!_isnight && light/SAMPCT<threshold)
_isnight=1;
} else {
_isnight=1;
}
};
uint32_t GetLight(void){
2011-07-31 20:13:06 +00:00
return light/SAMPCT;
};
char isNight(void){
return _isnight;
};