Rev 2160 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2160 | Rev 2189 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | #include <inttypes.h> |
1 | #include <inttypes.h> |
2 | #include "analog.h" |
- | |
3 | #include "attitude.h" |
2 | #include "attitude.h" |
4 | #include "configuration.h" |
3 | #include "configuration.h" |
5 | #include "controlMixer.h" |
4 | #include "definitions.h" |
6 | // for digital / LED debug. |
- | |
7 | #include "output.h" |
5 | #include "debug.h" |
8 | - | ||
9 | // For scope debugging only! |
- | |
10 | #include "rc.h" |
- | |
Line 11... | Line 6... | ||
11 | 6 | ||
Line 12... | Line 7... | ||
12 | #define INTEGRAL_LIMIT 100000 |
7 | #define INTEGRAL_LIMIT 100000 |
Line 67... | Line 62... | ||
67 | // Switch is OFF. |
62 | // Switch is OFF. |
68 | setHeightLatch = 0; |
63 | setHeightLatch = 0; |
69 | } |
64 | } |
70 | } else { |
65 | } else { |
71 | // Switch is not activated; take the "max-height" as the target height. |
66 | // Switch is not activated; take the "max-height" as the target height. |
72 | setHeight = (uint16_t) (HEIGHT_FORMULA(dynamicParams.heightSetting)); // should be: 100 (or make a param out of it) |
67 | setHeight = (uint16_t) (HEIGHT_FORMULA(dynamicParams.heightSetting)); |
73 | } |
68 | } |
Line 74... | Line 69... | ||
74 | 69 | ||
75 | /* |
70 | /* |
76 | if (++heightRampingTimer == INTEGRATION_FREQUENCY / 10) { |
71 | if (++heightRampingTimer == INTEGRATION_FREQUENCY / 10) { |
Line 94... | Line 89... | ||
94 | */ |
89 | */ |
95 | // uint8_t heightControlTestOscPeriod; |
90 | // uint8_t heightControlTestOscPeriod; |
96 | // uint8_t heightControlTestOscAmplitude; |
91 | // uint8_t heightControlTestOscAmplitude; |
Line 97... | Line 92... | ||
97 | 92 | ||
- | 93 | hc_testOscPrescaler++; |
|
98 | hc_testOscPrescaler++; |
94 | |
99 | if (hc_testOscPrescaler == 488) { |
95 | if (hc_testOscPrescaler == 250) { |
100 | hc_testOscPrescaler = 0; |
96 | hc_testOscPrescaler = 0; |
101 | hc_testOscTimer++; |
97 | hc_testOscTimer++; |
102 | if (hc_testOscTimer == staticParams.heightControlTestOscPeriod) { |
98 | if (hc_testOscTimer == staticParams.heightControlTestOscPeriod) { |
103 | hc_testOscTimer = 0; |
99 | hc_testOscTimer = 0; |
Line 125... | Line 121... | ||
125 | #define LOG_IHEIGHT_SCALE 24 |
121 | #define LOG_IHEIGHT_SCALE 24 |
126 | #define LOG_DHEIGHT_SCALE 6 |
122 | #define LOG_DHEIGHT_SCALE 6 |
Line 127... | Line 123... | ||
127 | 123 | ||
128 | // takes 180-200 usec (with integral term). That is too heavy!!! |
124 | // takes 180-200 usec (with integral term). That is too heavy!!! |
129 | // takes 100 usec without integral term. |
125 | // takes 100 usec without integral term. |
130 | void HC_periodicTaskAndPRTY(int16_t* PRTY) { |
126 | void HC_periodicTaskAndRPTY(int16_t* RPTY) { |
131 | HC_periodicTask(); |
127 | HC_periodicTask(); |
132 | int16_t throttle = PRTY[CONTROL_THROTTLE]; |
128 | int16_t throttle = RPTY[CONTROL_THROTTLE]; |
133 | int32_t height = analog_getHeight(); |
129 | int32_t height = analog_getHeight(); |
134 | int32_t heightError = targetHeight - height; |
130 | int32_t heightError = targetHeight - height; |
Line 135... | Line 131... | ||
135 | int16_t dHeight = analog_getDHeight(); |
131 | int16_t dHeight = analog_getDHeight(); |
Line 204... | Line 200... | ||
204 | } |
200 | } |
205 | } |
201 | } |
Line 206... | Line 202... | ||
206 | 202 | ||
Line 207... | Line 203... | ||
207 | /* Experiment: Find hover-throttle */ |
203 | /* Experiment: Find hover-throttle */ |
208 | 204 | ||
209 | #define DEFAULT_HOVERTHROTTLE 50 |
205 | #define DEFAULT_HOVERTHROTTLE 200 |
210 | int32_t stronglyFilteredHeightDiff = 0; |
206 | int32_t stronglyFilteredHeightDiff = 0; |
211 | // uint16_t hoverThrottle = 0; // DEFAULT_HOVERTHROTTLE; |
207 | // uint16_t hoverThrottle = 0; // DEFAULT_HOVERTHROTTLE; |
Line 225... | Line 221... | ||
225 | } else |
221 | } else |
226 | debugOut.digital[0] &= ~DEBUG_HOVERTHROTTLE; |
222 | debugOut.digital[0] &= ~DEBUG_HOVERTHROTTLE; |
Line 227... | Line 223... | ||
227 | 223 | ||
Line 228... | Line 224... | ||
228 | */ |
224 | */ |
229 | 225 | ||
Line 230... | Line 226... | ||
230 | PRTY[CONTROL_THROTTLE] = throttle; |
226 | RPTY[CONTROL_THROTTLE] = throttle; |
231 | } |
227 | } |
232 | 228 |