Subversion Repositories FlightCtrl

Rev

Rev 1131 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1131 Rev 1133
Line 1... Line 1...
1
#include <inttypes.h>
1
#include <inttypes.h>
2
#include "main.h"
2
#include "main.h"
3
#include "parameter.h"
3
#include "parameter.h"
Line -... Line 4...
-
 
4
 
-
 
5
uint16_t        LED1_Timing   = 0;
-
 
6
uint16_t        LED2_Timing   = 0;
4
 
7
 
5
unsigned char J16Blinkcount = 0, J16Mask = 1;
8
unsigned char   J16Blinkcount = 0, J16Mask = 1;
6
unsigned char J17Blinkcount = 0, J17Mask = 1;
9
unsigned char   J17Blinkcount = 0, J17Mask = 1;
7
unsigned char J16 = 0, J17 = 0;
-
 
8
unsigned char pwmJ16 = 0, pwmJ17 = 0;
-
 
9
 
-
 
10
static unsigned char pwmtable[32] ={0, 1, 2, 2, 2, 3, 3, 4, 5, 6, 7, 8, 10, 11,
-
 
11
    13, 16, 19, 23, 27, 32, 38, 45, 54, 64, 76,
-
 
Line 12... Line 10...
12
    91, 108, 128, 152, 181, 215, 250};
10
unsigned char   J16 = 0, J17 = 0;
Line 13... Line 11...
13
 
11
 
Line -... Line 12...
-
 
12
unsigned char   lightsEnabled = 0, lightsOn = 0;
14
unsigned char lightsEnabled = 0, lightsOn = 0;
13
 
15
 
14
extern char     MotorenEin;
16
extern char MotorenEin;
15
 
17
 
16
 
18
void setJ16(char enabled) {
17
void setJ16( char enabled ) {
Line 42... Line 41...
42
    else
41
        else
43
        J17_OFF;
42
                J17_OFF;                       
44
}
43
}
Line 45... Line 44...
45
 
44
 
46
// initializes the LED control outputs J16, J17
-
 
47
 
45
// initializes the LED control outputs J16, J17
48
void LED_Init(void) {
46
void LED_Init( void ) {
49
    // set PC2 & PC3 as output (control of J16 & J17)
47
        // set PC2 & PC3 as output (control of J16 & J17)
Line 50... Line 48...
50
    DDRC |= (1 << DDC2) | (1 << DDC3);
48
    DDRC |= (1<<DDC2)|(1<<DDC3);
Line 51... Line 49...
51
 
49
       
52
    lightsOn = lightsEnabled = 0;
50
    lightsOn = lightsEnabled = 0;
Line 53... Line 51...
53
 
51
       
54
    setJ16(0);
-
 
55
    setJ17(0);
52
        setJ16( 0);
56
 
-
 
57
    J16Blinkcount = 0;
53
        setJ17( 0);
Line 58... Line 54...
58
    J16Mask = 128;
54
       
Line 59... Line 55...
59
    J17Blinkcount = 0;
55
    J16Blinkcount = 0; J16Mask = 128;
60
    J17Mask = 128;
56
    J17Blinkcount = 0; J17Mask = 128;
61
}
57
}
62
 
58
 
63
void checkLightsEnabled(void) {
59
void checkLightsEnabled(void) {
64
 
60
 
65
    // Mit dem Gier-Stick rechts lassen sich bei stehenden Motoren die LED's ein- und mit links ausschalten
61
    // Mit dem Gier-Stick rechts lassen sich bei stehenden Motoren die LED's ein- und mit links ausschalten
66
    if (!MotorenEin) {
62
        if( !MotorenEin) {
67
        if (PARAM_LED_STICK_ENABLED) {
63
        if( PARAM_LED_STICK_ENABLED) {
68
            if (PPM_in[ EE_Parameter.Kanalbelegung[ K_GAS ] ] > 35 - 125
64
             if ( PPM_in[ EE_Parameter.Kanalbelegung[ K_GAS ] ]  > 35-120
Line 82... Line 78...
82
 
78
 
83
    lightsOn = lightsEnabled;
79
    lightsOn = lightsEnabled;
Line 84... Line 80...
84
}
80
}
85
 
-
 
86
// called in UpdateMotors() every 2ms
81
 
Line 87... Line 82...
87
 
82
// called in UpdateMotors() every 2ms
Line 88... Line 83...
88
void LED_Update(void) {
83
void LED_Update( void ) {
Line 109... Line 104...
109
        else if (EE_Parameter.J16Timing > 250 && Parameter_J16Timing < 10)
104
                else if( EE_Parameter.J16Timing > 250 && Parameter_J16Timing < 10 )
110
            J16 = !(EE_Parameter.J16Bitmask & 128);
105
                        J16 = !( EE_Parameter.J16Bitmask & 128 );
111
        else if (!J16Blinkcount--) {
106
                else if( !J16Blinkcount-- ) {          
112
            J16Blinkcount = Parameter_J16Timing - 1;
107
                        J16Blinkcount = Parameter_J16Timing-1;                 
113
            J16Mask = (J16Mask == 1 ? 0x80 : J16Mask >> 1);
108
                        J16Mask = (J16Mask == 1 ? 0x80 : J16Mask >> 1);                
114
 
-
 
115
            J16 = EE_Parameter.J16Bitmask & J16Mask;
109
                        J16 = EE_Parameter.J16Bitmask & J16Mask;
116
 
-
 
117
            if (EE_Parameter.J16Bitmask & J16Mask)
-
 
118
                pwmJ16 = pwmtable[(Parameter_J16Brightness + 6) / 4];
-
 
119
            else
-
 
120
                pwmJ16 = 0;
-
 
121
        }
110
                }  
Line 122... Line 111...
122
 
111
               
123
        // J17
112
                // J17
124
        if (EE_Parameter.J17Timing > 250 && Parameter_J17Timing > 230)
113
                if( EE_Parameter.J17Timing > 250 && Parameter_J17Timing > 230)
125
            J17 = EE_Parameter.J17Bitmask & 128;
114
                        J17 = EE_Parameter.J17Bitmask & 128 ;
126
        else if (EE_Parameter.J17Timing > 250 && Parameter_J17Timing < 10)
115
                else if( EE_Parameter.J17Timing > 250 && Parameter_J17Timing < 10)
127
            J17 = !(EE_Parameter.J17Bitmask & 128);
116
                        J17 = !( EE_Parameter.J17Bitmask & 128 );
128
        else if (!J17Blinkcount--) {
117
                else if( !J17Blinkcount-- ) {          
129
            J17Blinkcount = Parameter_J17Timing - 1;
118
                        J17Blinkcount = Parameter_J17Timing-1;                 
130
            J17Mask = (J17Mask == 1 ? 0x80 : J17Mask >> 1);
-
 
131
 
119
                        J17Mask = (J17Mask == 1 ? 0x80 : J17Mask >> 1);
132
            J17 = EE_Parameter.J17Bitmask & J17Mask;
-
 
133
 
-
 
134
            if (EE_Parameter.J17Bitmask & J17Mask)
-
 
135
                pwmJ17 = pwmtable[(Parameter_J17Brightness + 6) / 4];
-
 
136
            else
-
 
137
                pwmJ17 = 0;
120
                        J17 = EE_Parameter.J17Bitmask & J17Mask;
138
        }
121
                }  
Line 139... Line 122...
139
    }
122
        }
140
 
123