1,11 → 1,11 |
#include <inttypes.h> |
#include "led.h" |
#include "fc.h" |
#include "eeprom.h" |
|
uint16_t LED1_Time = 0; |
uint16_t LED2_Time = 0; |
uint8_t J16Blinkcount = 0, J16Mask = 1; |
uint8_t J17Blinkcount = 0, J17Mask = 1; |
|
|
// initializes the LED control outputs J16, J17 |
void LED_Init(void) |
{ |
13,30 → 13,53 |
DDRC |= (1<<DDC2)|(1<<DDC3); |
J16_OFF; |
J17_OFF; |
J16Blinkcount = 0; J16Mask = 128; |
J17Blinkcount = 0; J17Mask = 128; |
} |
|
|
// called in UpdateMotors() every 2ms |
// called in main loop every 2ms |
void LED_Update(void) |
{ |
static uint16_t J16_blinkcount = 0; |
static uint16_t J17_blinkcount = 0; |
static int8_t delay = 0; |
|
if (LED1_Time < 20) J16_ON; |
else if(LED1_Time < 220) |
if(!delay--) // 10 ms intervall |
{ |
if((2 * J16_blinkcount) < LED1_Time) J16_ON; |
else J16_OFF; |
if(J16_blinkcount++ >= LED1_Time) J16_blinkcount = 0; |
} |
else J16_ON; |
delay = 4; |
|
if (LED2_Time < 20) J17_ON; |
else if(LED2_Time < 220) |
{ |
if((2 * J17_blinkcount) < LED2_Time) J17_ON; |
else J17_OFF; |
if(J17_blinkcount++ >= LED2_Time) J17_blinkcount = 0; |
|
if ((ParamSet.J16Timing > 250) && (FCParam.J16Timing > 230)) |
{ |
if(ParamSet.J16Bitmask & 128) J16_ON; |
else J16_OFF; |
} |
else if ((ParamSet.J16Timing > 250) && (FCParam.J16Timing < 10)) |
{ |
if(ParamSet.J16Bitmask & 128) J16_OFF; |
else J16_ON; |
} |
else if(!J16Blinkcount--) |
{ |
J16Blinkcount = FCParam.J16Timing - 1; |
if(J16Mask == 1) J16Mask = 128; else J16Mask /= 2; |
if(J16Mask & ParamSet.J16Bitmask) J16_ON; else J16_OFF; |
} |
|
if ((ParamSet.J17Timing > 250) && (FCParam.J17Timing > 230)) |
{ |
if(ParamSet.J17Bitmask & 128) J17_ON; |
else J17_OFF; |
} |
else if ((ParamSet.J17Timing > 250) && (FCParam.J17Timing < 10)) |
{ |
if(ParamSet.J17Bitmask & 128) J17_OFF; |
else J17_ON; |
} |
else if(!J17Blinkcount--) |
{ |
J17Blinkcount = FCParam.J17Timing - 1; |
if(J17Mask == 1) J17Mask = 128; else J17Mask /= 2; |
if(J17Mask & ParamSet.J17Bitmask) J17_ON; else J17_OFF; |
} |
} |
else J17_ON; |
} |