Subversion Repositories FlightCtrl

Rev

Rev 763 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 763 Rev 790
1
#include <inttypes.h>
1
#include <inttypes.h>
2
#include "led.h"
2
#include "led.h"
3
#include "fc.h"
3
#include "fc.h"
4
 
4
 
5
uint16_t LED_OffTime = 0;
5
uint16_t LED1_Time = 0;
6
uint16_t LED_OnTime = 0;
6
uint16_t LED2_Time = 0;
7
 
7
 
8
 
8
 
9
// initializes the LED control outputs J16, J17
9
// initializes the LED control outputs J16, J17
10
void LED_Init(void)
10
void LED_Init(void)
11
{
11
{
12
    // set PC2 & PC3 as output (control of J16 & J17)
12
    // set PC2 & PC3 as output (control of J16 & J17)
13
        DDRC |= (1<<DDC2)|(1<<DDC3);
13
        DDRC |= (1<<DDC2)|(1<<DDC3);
14
        J16_OFF;
14
        J16_OFF;
15
        J17_OFF;
15
        J17_OFF;
16
}
16
}
17
 
17
 
18
 
18
 
19
// called in UpdateMotors() every 2ms
19
// called in UpdateMotors() every 2ms
20
void LED_Update(void)
20
void LED_Update(void)
21
{
21
{
22
        static uint16_t J16_blinkcount = 0;
22
        static uint16_t J16_blinkcount = 0;
-
 
23
        static uint16_t J17_blinkcount = 0;
-
 
24
 
-
 
25
        if (LED1_Time < 20) J16_ON;
-
 
26
        else if(LED1_Time < 220)
23
 
27
        {
24
        if(J16_blinkcount < LED_OnTime) J16_ON;
28
                if((2 * J16_blinkcount) < LED1_Time) J16_ON;
25
        else J16_OFF;
29
                else J16_OFF;
-
 
30
                if(J16_blinkcount++ >= LED1_Time) J16_blinkcount = 0;
-
 
31
        }
-
 
32
        else J16_ON;
-
 
33
 
-
 
34
        if (LED2_Time < 20) J17_OFF;
-
 
35
        else if(LED2_Time < 220)
-
 
36
        {
-
 
37
                if((2 * J17_blinkcount) < LED2_Time) J17_ON;
-
 
38
                else J17_OFF;
-
 
39
                if(J17_blinkcount++ >= LED2_Time) J17_blinkcount = 0;
-
 
40
        }
26
        if( J16_blinkcount++ >= (LED_OnTime + LED_OffTime)) J16_blinkcount = 0;
41
        else J17_OFF;
27
}
42
}
28
 
43