Rev 2061 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2061 | Rev 2183 | ||
---|---|---|---|
Line 22... | Line 22... | ||
22 | { |
22 | { |
23 | static char delay = 0; |
23 | static char delay = 0; |
24 | static unsigned char J16Bitmask = 0; |
24 | static unsigned char J16Bitmask = 0; |
25 | static unsigned char J17Bitmask = 0; |
25 | static unsigned char J17Bitmask = 0; |
26 | static unsigned char J16Warn = 0, J17Warn = 0; |
26 | static unsigned char J16Warn = 0, J17Warn = 0; |
- | 27 | static unsigned char from_nc = 0; |
|
27 | if(!delay--) // 20ms Intervall |
28 | if(!delay--) // 20ms Intervall |
28 | { |
29 | { |
29 | delay = 9; |
30 | delay = 9; |
- | 31 | if(FromNC_WP_EventChannel != -127) from_nc = (unsigned char) FromNC_WP_EventChannel + 127; |
|
30 | if(FC_StatusFlags & (FC_STATUS_LOWBAT | FC_STATUS_EMERGENCY_LANDING) || (VersionInfo.HardwareError[1] & FC_ERROR1_I2C)) |
32 | if(FC_StatusFlags & (FC_STATUS_LOWBAT | FC_STATUS_EMERGENCY_LANDING) || (VersionInfo.HardwareError[1] & FC_ERROR1_I2C)) |
31 | { |
33 | { |
32 | if(EE_Parameter.WARN_J16_Bitmask) |
34 | if(EE_Parameter.WARN_J16_Bitmask) |
33 | { |
35 | { |
34 | if(!J16Warn) J16Blinkcount = 4; |
36 | if(!J16Warn) J16Blinkcount = 4; |
Line 45... | Line 47... | ||
45 | J16Warn = 0; |
47 | J16Warn = 0; |
46 | J17Warn = 0; |
48 | J17Warn = 0; |
47 | J16Bitmask = EE_Parameter.J16Bitmask; |
49 | J16Bitmask = EE_Parameter.J16Bitmask; |
48 | J17Bitmask = EE_Parameter.J17Bitmask; |
50 | J17Bitmask = EE_Parameter.J17Bitmask; |
49 | } |
51 | } |
- | 52 | //DebugOut.Analog[29] = EE_Parameter.GlobalConfig3; |
|
50 | 53 | // Output 1 |
|
51 | if(!J16Warn) |
54 | if(!J16Warn) |
52 | { |
55 | { |
53 | if((EE_Parameter.BitConfig & CFG_MOTOR_BLINK1) && !MotorenEin) {if(EE_Parameter.BitConfig & CFG_MOTOR_OFF_LED1) J16_ON; else J16_OFF;} |
56 | if((EE_Parameter.BitConfig & CFG_MOTOR_BLINK1) && !MotorenEin) {if(EE_Parameter.BitConfig & CFG_MOTOR_OFF_LED1) J16_ON; else J16_OFF;} |
54 | else |
57 | else |
55 | if((EE_Parameter.J16Timing > 247) && (Parameter_J16Timing > 220)) {if(J16Bitmask & 128) J16_ON; else J16_OFF; J16Mask = 1;} |
58 | if((EE_Parameter.J16Timing > 247) && (Parameter_J16Timing > 220)) {if(J16Bitmask & 128) J16_ON; else J16_OFF; J16Mask = 1;} |
56 | else |
59 | else |
57 | if((EE_Parameter.J16Timing > 247) && (Parameter_J16Timing == 5)) {if(J16Bitmask & 128) J16_OFF; else J16_ON; J16Mask = 1;} |
60 | if((EE_Parameter.J16Timing > 247) && (Parameter_J16Timing == 5)) {if(J16Bitmask & 128) J16_OFF; else J16_ON; J16Mask = 1;} |
58 | else |
61 | else |
59 | if(!J16Blinkcount--) |
62 | if(!J16Blinkcount--) |
60 | { |
63 | { |
- | 64 | if(EE_Parameter.GlobalConfig3 & CFG3_USE_NC_FOR_OUT1) |
|
- | 65 | { |
|
- | 66 | J16Blinkcount = from_nc / 2; |
|
- | 67 | if(!from_nc) { if(J16Bitmask & 128) J16_OFF; else J16_ON; J16Mask = 0; } // Ausschalten |
|
- | 68 | else |
|
- | 69 | { |
|
- | 70 | if(J16Mask == 0) |
|
- | 71 | { |
|
- | 72 | from_nc = 0; |
|
- | 73 | J16Mask = 128; |
|
- | 74 | if(J16Bitmask & 128) J16_OFF; else J16_ON; // Ausschalten |
|
- | 75 | } |
|
- | 76 | else |
|
- | 77 | { |
|
- | 78 | if(J16Mask & J16Bitmask) J16_ON; else J16_OFF; |
|
- | 79 | J16Mask /= 2; |
|
- | 80 | } |
|
- | 81 | } |
|
- | 82 | } |
|
- | 83 | else |
|
- | 84 | { |
|
61 | J16Blinkcount = Parameter_J16Timing / 2; |
85 | J16Blinkcount = Parameter_J16Timing / 2; |
62 | if(J16Mask == 1) J16Mask = 128; else J16Mask /= 2; |
86 | if(J16Mask == 1) { from_nc = 0; J16Mask = 128; } else J16Mask /= 2; |
63 | if(J16Mask & J16Bitmask) J16_ON; else J16_OFF; |
87 | if(J16Mask & J16Bitmask) J16_ON; else J16_OFF; |
- | 88 | } |
|
64 | } |
89 | } |
65 | } |
90 | } |
66 | else |
91 | else // warning case |
67 | if(!J16Blinkcount--) |
92 | if(!J16Blinkcount--) |
68 | { |
93 | { |
69 | J16Blinkcount = 10-1; |
94 | J16Blinkcount = 10-1; |
70 | if(J16Mask == 1) J16Mask = 128; else J16Mask /= 2; |
95 | if(J16Mask == 1) J16Mask = 128; else J16Mask /= 2; |
71 | if(J16Mask & EE_Parameter.WARN_J16_Bitmask) J16_ON; else J16_OFF; |
96 | if(J16Mask & EE_Parameter.WARN_J16_Bitmask) J16_ON; else J16_OFF; |
72 | } |
97 | } |
- | 98 | // Output 2 |
|
Line 73... | Line 99... | ||
73 | 99 | ||
74 | if(!J17Warn) |
100 | if(!J17Warn) |
75 | { |
101 | { |
76 | if((EE_Parameter.BitConfig & CFG_MOTOR_BLINK2) && !MotorenEin) {if(EE_Parameter.BitConfig & CFG_MOTOR_OFF_LED2) J17_ON; else J17_OFF;} |
102 | if((EE_Parameter.BitConfig & CFG_MOTOR_BLINK2) && !MotorenEin) {if(EE_Parameter.BitConfig & CFG_MOTOR_OFF_LED2) J17_ON; else J17_OFF;} |
Line 84... | Line 110... | ||
84 | J17Blinkcount = Parameter_J17Timing / 2; |
110 | J17Blinkcount = Parameter_J17Timing / 2; |
85 | if(J17Mask == 1) J17Mask = 128; else J17Mask /= 2; |
111 | if(J17Mask == 1) J17Mask = 128; else J17Mask /= 2; |
86 | if(J17Mask & J17Bitmask) J17_ON; else J17_OFF; |
112 | if(J17Mask & J17Bitmask) J17_ON; else J17_OFF; |
87 | } |
113 | } |
88 | } |
114 | } |
89 | else |
115 | else // warning case |
90 | if(!J17Blinkcount--) |
116 | if(!J17Blinkcount--) |
91 | { |
117 | { |
92 | J17Blinkcount = 10-1; |
118 | J17Blinkcount = 10-1; |
93 | if(J17Mask == 1) J17Mask = 128; else J17Mask /= 2; |
119 | if(J17Mask == 1) J17Mask = 128; else J17Mask /= 2; |
94 | if(J17Mask & EE_Parameter.WARN_J17_Bitmask) J17_ON; else J17_OFF; |
120 | if(J17Mask & EE_Parameter.WARN_J17_Bitmask) J17_ON; else J17_OFF; |
95 | } |
121 | } |
- | 122 | ||
96 | if(PORTC & (1<<PORTC2)) FC_StatusFlags2 |= FC_STATUS2_OUT1_ACTIVE; else FC_StatusFlags2 &= ~FC_STATUS2_OUT1_ACTIVE; // Out1 (J16) |
123 | if(PORTC & (1<<PORTC2)) FC_StatusFlags2 |= FC_STATUS2_OUT1_ACTIVE; else FC_StatusFlags2 &= ~FC_STATUS2_OUT1_ACTIVE; // Out1 (J16) |
97 | if(PORTC & (1<<PORTC3)) FC_StatusFlags2 |= FC_STATUS2_OUT2_ACTIVE; else FC_StatusFlags2 &= ~FC_STATUS2_OUT2_ACTIVE; // Out2 (J17) |
124 | if(PORTC & (1<<PORTC3)) FC_StatusFlags2 |= FC_STATUS2_OUT2_ACTIVE; else FC_StatusFlags2 &= ~FC_STATUS2_OUT2_ACTIVE; // Out2 (J17) |
98 | } |
125 | } |
99 | } |
126 | } |