Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 1130 → Rev 1131

/branches/thjac/V1_10/altcon.lst
0,0 → 1,425
1 .file "altcon.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __CCP__ = 0x34
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .text
11 .global altcon_init
13 altcon_init:
14 /* prologue: function */
15 /* frame size = 0 */
16 0000 1092 0000 sts enabled,__zero_reg__
17 0004 84EF ldi r24,lo8(500)
18 0006 91E0 ldi r25,hi8(500)
19 0008 9093 0000 sts (beeptime)+1,r25
20 000c 8093 0000 sts beeptime,r24
21 /* epilogue start */
22 0010 0895 ret
24 .global altcon_lock
26 altcon_lock:
27 /* prologue: function */
28 /* frame size = 0 */
29 0012 8091 0000 lds r24,airPressure
30 0016 9091 0000 lds r25,(airPressure)+1
31 001a 9093 0000 sts (pressureOffset)+1,r25
32 001e 8093 0000 sts pressureOffset,r24
33 /* epilogue start */
34 0022 0895 ret
36 .global altcon_start
38 altcon_start:
39 /* prologue: function */
40 /* frame size = 0 */
41 0024 6091 0000 lds r22,Mess_Integral_Hoch
42 0028 7091 0000 lds r23,(Mess_Integral_Hoch)+1
43 002c 8091 0000 lds r24,(Mess_Integral_Hoch)+2
44 0030 9091 0000 lds r25,(Mess_Integral_Hoch)+3
45 0034 20E8 ldi r18,lo8(128)
46 0036 30E0 ldi r19,hi8(128)
47 0038 40E0 ldi r20,hlo8(128)
48 003a 50E0 ldi r21,hhi8(128)
49 003c 0E94 0000 call __divmodsi4
50 0040 3093 0000 sts (accZOffset)+1,r19
51 0044 2093 0000 sts accZOffset,r18
52 0048 1092 0000 sts (lastError)+1,__zero_reg__
53 004c 1092 0000 sts lastError,__zero_reg__
54 0050 1092 0000 sts (lastN)+1,__zero_reg__
55 0054 1092 0000 sts lastN,__zero_reg__
56 0058 1092 0000 sts (averageN)+1,__zero_reg__
57 005c 1092 0000 sts averageN,__zero_reg__
58 0060 1092 0000 sts altIntegral,__zero_reg__
59 0064 1092 0000 sts (altIntegral)+1,__zero_reg__
60 0068 1092 0000 sts (altIntegral)+2,__zero_reg__
61 006c 1092 0000 sts (altIntegral)+3,__zero_reg__
62 0070 84EF ldi r24,lo8(500)
63 0072 91E0 ldi r25,hi8(500)
64 0074 9093 0000 sts (beeptime)+1,r25
65 0078 8093 0000 sts beeptime,r24
66 /* epilogue start */
67 007c 0895 ret
69 .global altcon_stop
71 altcon_stop:
72 /* prologue: function */
73 /* frame size = 0 */
74 007e 1092 0000 sts enabled,__zero_reg__
75 0082 84EF ldi r24,lo8(500)
76 0084 91E0 ldi r25,hi8(500)
77 0086 9093 0000 sts (beeptime)+1,r25
78 008a 8093 0000 sts beeptime,r24
79 /* epilogue start */
80 008e 0895 ret
82 .global altcon_error
84 altcon_error:
85 0090 9F92 push r9
86 0092 AF92 push r10
87 0094 BF92 push r11
88 0096 CF92 push r12
89 0098 DF92 push r13
90 009a EF92 push r14
91 009c FF92 push r15
92 009e 0F93 push r16
93 00a0 1F93 push r17
94 00a2 CF93 push r28
95 00a4 DF93 push r29
96 /* prologue: function */
97 /* frame size = 0 */
98 00a6 8091 0000 lds r24,enabled
99 00aa 8823 tst r24
100 00ac 01F4 brne .+2
101 00ae 00C0 rjmp .L10
102 00b0 8091 0000 lds r24,Notlandung
103 00b4 8823 tst r24
104 00b6 01F0 breq .+2
105 00b8 00C0 rjmp .L10
106 00ba E090 0000 lds r14,airPressure
107 00be F090 0000 lds r15,(airPressure)+1
108 00c2 8091 0000 lds r24,pressureOffset
109 00c6 9091 0000 lds r25,(pressureOffset)+1
110 00ca E81A sub r14,r24
111 00cc F90A sbc r15,r25
112 00ce 0091 0000 lds r16,Parameter_Hoehe_P
113 00d2 8091 0000 lds r24,EE_Parameter+31
114 00d6 90E0 ldi r25,lo8(0)
115 00d8 9C01 movw r18,r24
116 00da 2E9D mul r18,r14
117 00dc C001 movw r24,r0
118 00de 2F9D mul r18,r15
119 00e0 900D add r25,r0
120 00e2 3E9D mul r19,r14
121 00e4 900D add r25,r0
122 00e6 1124 clr r1
123 00e8 64E0 ldi r22,lo8(4)
124 00ea 70E0 ldi r23,hi8(4)
125 00ec 0E94 0000 call __divmodhi4
126 00f0 9B01 movw r18,r22
127 00f2 4427 clr r20
128 00f4 37FD sbrc r19,7
129 00f6 4095 com r20
130 00f8 542F mov r21,r20
131 00fa 8091 0000 lds r24,altIntegral
132 00fe 9091 0000 lds r25,(altIntegral)+1
133 0102 A091 0000 lds r26,(altIntegral)+2
134 0106 B091 0000 lds r27,(altIntegral)+3
135 010a 280F add r18,r24
136 010c 391F adc r19,r25
137 010e 4A1F adc r20,r26
138 0110 5B1F adc r21,r27
139 0112 2093 0000 sts altIntegral,r18
140 0116 3093 0000 sts (altIntegral)+1,r19
141 011a 4093 0000 sts (altIntegral)+2,r20
142 011e 5093 0000 sts (altIntegral)+3,r21
143 0122 2134 cpi r18,lo8(1000001)
144 0124 62E4 ldi r22,hi8(1000001)
145 0126 3607 cpc r19,r22
146 0128 6FE0 ldi r22,hlo8(1000001)
147 012a 4607 cpc r20,r22
148 012c 60E0 ldi r22,hhi8(1000001)
149 012e 5607 cpc r21,r22
150 0130 04F0 brlt .L11
151 0132 80E4 ldi r24,lo8(1000000)
152 0134 92E4 ldi r25,hi8(1000000)
153 0136 AFE0 ldi r26,hlo8(1000000)
154 0138 B0E0 ldi r27,hhi8(1000000)
155 013a 00C0 rjmp .L20
156 .L11:
157 013c 205C subi r18,lo8(-1000000)
158 013e 3D4B sbci r19,hi8(-1000000)
159 0140 404F sbci r20,hlo8(-1000000)
160 0142 5F4F sbci r21,hhi8(-1000000)
161 0144 04F4 brge .L12
162 0146 80EC ldi r24,lo8(-1000000)
163 0148 9DEB ldi r25,hi8(-1000000)
164 014a A0EF ldi r26,hlo8(-1000000)
165 014c BFEF ldi r27,hhi8(-1000000)
166 .L20:
167 014e 8093 0000 sts altIntegral,r24
168 0152 9093 0000 sts (altIntegral)+1,r25
169 0156 A093 0000 sts (altIntegral)+2,r26
170 015a B093 0000 sts (altIntegral)+3,r27
171 .L12:
172 015e A090 0000 lds r10,altIntegral
173 0162 B090 0000 lds r11,(altIntegral)+1
174 0166 C090 0000 lds r12,(altIntegral)+2
175 016a D090 0000 lds r13,(altIntegral)+3
176 016e 9090 0000 lds r9,Parameter_Luftdruck_D
177 0172 C091 0000 lds r28,lastError
178 0176 D091 0000 lds r29,(lastError)+1
179 017a 6091 0000 lds r22,Mess_Integral_Hoch
180 017e 7091 0000 lds r23,(Mess_Integral_Hoch)+1
181 0182 8091 0000 lds r24,(Mess_Integral_Hoch)+2
182 0186 9091 0000 lds r25,(Mess_Integral_Hoch)+3
183 018a 20E8 ldi r18,lo8(128)
184 018c 30E0 ldi r19,hi8(128)
185 018e 40E0 ldi r20,hlo8(128)
186 0190 50E0 ldi r21,hhi8(128)
187 0192 0E94 0000 call __divmodsi4
188 0196 CA01 movw r24,r20
189 0198 B901 movw r22,r18
190 019a 2091 0000 lds r18,accZOffset
191 019e 3091 0000 lds r19,(accZOffset)+1
192 01a2 4427 clr r20
193 01a4 37FD sbrc r19,7
194 01a6 4095 com r20
195 01a8 542F mov r21,r20
196 01aa 621B sub r22,r18
197 01ac 730B sbc r23,r19
198 01ae 840B sbc r24,r20
199 01b0 950B sbc r25,r21
200 01b2 2091 0000 lds r18,Parameter_Hoehe_ACC_Wirkung
201 01b6 30E0 ldi r19,lo8(0)
202 01b8 40E0 ldi r20,lo8(0)
203 01ba 50E0 ldi r21,hi8(0)
204 01bc 0E94 0000 call __mulsi3
205 01c0 20E2 ldi r18,lo8(32)
206 01c2 30E0 ldi r19,hi8(32)
207 01c4 40E0 ldi r20,hlo8(32)
208 01c6 50E0 ldi r21,hhi8(32)
209 01c8 0E94 0000 call __divmodsi4
210 01cc C901 movw r24,r18
211 01ce 3093 0000 sts (temp)+1,r19
212 01d2 2093 0000 sts temp,r18
213 01d6 21E0 ldi r18,hi8(281)
214 01d8 8931 cpi r24,lo8(281)
215 01da 9207 cpc r25,r18
216 01dc 04F0 brlt .L13
217 01de 88E1 ldi r24,lo8(280)
218 01e0 91E0 ldi r25,hi8(280)
219 01e2 00C0 rjmp .L21
220 .L13:
221 01e4 885E subi r24,lo8(-280)
222 01e6 9E4F sbci r25,hi8(-280)
223 01e8 04F4 brge .L14
224 01ea 88EE ldi r24,lo8(-280)
225 01ec 9EEF ldi r25,hi8(-280)
226 .L21:
227 01ee 9093 0000 sts (temp)+1,r25
228 01f2 8093 0000 sts temp,r24
229 .L14:
230 01f6 802F mov r24,r16
231 01f8 90E0 ldi r25,lo8(0)
232 01fa AC01 movw r20,r24
233 01fc 4E9D mul r20,r14
234 01fe C001 movw r24,r0
235 0200 4F9D mul r20,r15
236 0202 900D add r25,r0
237 0204 5E9D mul r21,r14
238 0206 900D add r25,r0
239 0208 1124 clr r1
240 020a 64E0 ldi r22,lo8(4)
241 020c 70E0 ldi r23,hi8(4)
242 020e 0E94 0000 call __divmodhi4
243 0212 8B01 movw r16,r22
244 0214 C601 movw r24,r12
245 0216 B501 movw r22,r10
246 0218 20EA ldi r18,lo8(4000)
247 021a 3FE0 ldi r19,hi8(4000)
248 021c 40E0 ldi r20,hlo8(4000)
249 021e 50E0 ldi r21,hhi8(4000)
250 0220 0E94 0000 call __divmodsi4
251 0224 020F add r16,r18
252 0226 131F adc r17,r19
253 0228 9701 movw r18,r14
254 022a 2C1B sub r18,r28
255 022c 3D0B sbc r19,r29
256 022e 892D mov r24,r9
257 0230 90E0 ldi r25,lo8(0)
258 0232 BC01 movw r22,r24
259 0234 269F mul r18,r22
260 0236 C001 movw r24,r0
261 0238 279F mul r18,r23
262 023a 900D add r25,r0
263 023c 369F mul r19,r22
264 023e 900D add r25,r0
265 0240 1124 clr r1
266 0242 62E0 ldi r22,lo8(2)
267 0244 70E0 ldi r23,hi8(2)
268 0246 0E94 0000 call __divmodhi4
269 024a 8091 0000 lds r24,temp
270 024e 9091 0000 lds r25,(temp)+1
271 0252 680F add r22,r24
272 0254 791F adc r23,r25
273 0256 600F add r22,r16
274 0258 711F adc r23,r17
275 025a 8091 0000 lds r24,EE_Parameter+13
276 025e 90E0 ldi r25,lo8(0)
277 0260 9C01 movw r18,r24
278 0262 629F mul r22,r18
279 0264 C001 movw r24,r0
280 0266 639F mul r22,r19
281 0268 900D add r25,r0
282 026a 729F mul r23,r18
283 026c 900D add r25,r0
284 026e 1124 clr r1
285 0270 6AE0 ldi r22,lo8(10)
286 0272 70E0 ldi r23,hi8(10)
287 0274 0E94 0000 call __divmodhi4
288 0278 8091 0000 lds r24,EE_Parameter+11
289 027c 90E0 ldi r25,lo8(0)
290 027e 880F lsl r24
291 0280 991F rol r25
292 0282 880F lsl r24
293 0284 991F rol r25
294 0286 8617 cp r24,r22
295 0288 9707 cpc r25,r23
296 028a 04F4 brge .L15
297 028c EC01 movw r28,r24
298 028e 00C0 rjmp .L16
299 .L15:
300 0290 2227 clr r18
301 0292 3327 clr r19
302 0294 281B sub r18,r24
303 0296 390B sbc r19,r25
304 0298 EB01 movw r28,r22
305 029a 6217 cp r22,r18
306 029c 7307 cpc r23,r19
307 029e 04F4 brge .L16
308 02a0 E901 movw r28,r18
309 .L16:
310 02a2 D093 0000 sts (lastN)+1,r29
311 02a6 C093 0000 sts lastN,r28
312 02aa F092 0000 sts (lastError)+1,r15
313 02ae E092 0000 sts lastError,r14
314 02b2 2091 0000 lds r18,averageN
315 02b6 3091 0000 lds r19,(averageN)+1
316 02ba AE01 movw r20,r28
317 02bc 421B sub r20,r18
318 02be 530B sbc r21,r19
319 02c0 8091 0000 lds r24,EE_Parameter+32
320 02c4 90E0 ldi r25,lo8(0)
321 02c6 BC01 movw r22,r24
322 02c8 469F mul r20,r22
323 02ca C001 movw r24,r0
324 02cc 479F mul r20,r23
325 02ce 900D add r25,r0
326 02d0 569F mul r21,r22
327 02d2 900D add r25,r0
328 02d4 1124 clr r1
329 02d6 64E6 ldi r22,lo8(100)
330 02d8 70E0 ldi r23,hi8(100)
331 02da 0E94 0000 call __divmodhi4
332 02de 260F add r18,r22
333 02e0 371F adc r19,r23
334 02e2 3093 0000 sts (averageN)+1,r19
335 02e6 2093 0000 sts averageN,r18
336 02ea 00C0 rjmp .L18
337 .L10:
338 02ec C0E0 ldi r28,lo8(0)
339 02ee D0E0 ldi r29,hi8(0)
340 .L18:
341 02f0 6091 0000 lds r22,altIntegral
342 02f4 7091 0000 lds r23,(altIntegral)+1
343 02f8 8091 0000 lds r24,(altIntegral)+2
344 02fc 9091 0000 lds r25,(altIntegral)+3
345 0300 20EA ldi r18,lo8(4000)
346 0302 3FE0 ldi r19,hi8(4000)
347 0304 40E0 ldi r20,hlo8(4000)
348 0306 50E0 ldi r21,hhi8(4000)
349 0308 0E94 0000 call __divmodsi4
350 030c 3093 0000 sts (DebugOut+62)+1,r19
351 0310 2093 0000 sts DebugOut+62,r18
352 0314 D093 0000 sts (DebugOut+56)+1,r29
353 0318 C093 0000 sts DebugOut+56,r28
354 031c CE01 movw r24,r28
355 /* epilogue start */
356 031e DF91 pop r29
357 0320 CF91 pop r28
358 0322 1F91 pop r17
359 0324 0F91 pop r16
360 0326 FF90 pop r15
361 0328 EF90 pop r14
362 032a DF90 pop r13
363 032c CF90 pop r12
364 032e BF90 pop r11
365 0330 AF90 pop r10
366 0332 9F90 pop r9
367 0334 0895 ret
369 .global enabled
370 .global enabled
371 .section .bss
374 enabled:
375 0000 00 .skip 1,0
376 .global pressureOffset
377 .global pressureOffset
380 pressureOffset:
381 0001 0000 .skip 2,0
382 .global accZOffset
383 .global accZOffset
386 accZOffset:
387 0003 0000 .skip 2,0
388 .global lastError
389 .global lastError
392 lastError:
393 0005 0000 .skip 2,0
394 .global lastN
395 .global lastN
398 lastN:
399 0007 0000 .skip 2,0
400 .global averageN
401 .global averageN
404 averageN:
405 0009 0000 .skip 2,0
406 .global altIntegral
407 .global altIntegral
410 altIntegral:
411 000b 0000 0000 .skip 4,0
412 .comm temp,2,1
DEFINED SYMBOLS
*ABS*:00000000 altcon.c
c:\TEMP/cc6NfIds.s:2 *ABS*:0000003f __SREG__
c:\TEMP/cc6NfIds.s:3 *ABS*:0000003e __SP_H__
c:\TEMP/cc6NfIds.s:4 *ABS*:0000003d __SP_L__
c:\TEMP/cc6NfIds.s:5 *ABS*:00000034 __CCP__
c:\TEMP/cc6NfIds.s:6 *ABS*:00000000 __tmp_reg__
c:\TEMP/cc6NfIds.s:7 *ABS*:00000001 __zero_reg__
c:\TEMP/cc6NfIds.s:13 .text:00000000 altcon_init
c:\TEMP/cc6NfIds.s:374 .bss:00000000 enabled
c:\TEMP/cc6NfIds.s:26 .text:00000012 altcon_lock
c:\TEMP/cc6NfIds.s:380 .bss:00000001 pressureOffset
c:\TEMP/cc6NfIds.s:38 .text:00000024 altcon_start
c:\TEMP/cc6NfIds.s:386 .bss:00000003 accZOffset
c:\TEMP/cc6NfIds.s:392 .bss:00000005 lastError
c:\TEMP/cc6NfIds.s:398 .bss:00000007 lastN
c:\TEMP/cc6NfIds.s:404 .bss:00000009 averageN
c:\TEMP/cc6NfIds.s:410 .bss:0000000b altIntegral
c:\TEMP/cc6NfIds.s:71 .text:0000007e altcon_stop
c:\TEMP/cc6NfIds.s:84 .text:00000090 altcon_error
*COM*:00000002 temp
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
beeptime
airPressure
Mess_Integral_Hoch
__divmodsi4
Notlandung
Parameter_Hoehe_P
EE_Parameter
__divmodhi4
Parameter_Luftdruck_D
Parameter_Hoehe_ACC_Wirkung
__mulsi3
DebugOut
/branches/thjac/V1_10/fc.c
707,14 → 707,13
StickGier = -PPM_in[EE_Parameter.Kanalbelegung[K_GIER]];
 
// Gaswert übernehmen
if (pitchNeutral()) {
StickGas = pitch();
} else {
// Warum 120? Gas= 0 ist -125
// StickGas = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] + 120;
StickGas = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] + 125;
}
StickGas = pitch_value();
 
// Warum 120? Gas= 0 ist -125
// StickGas = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] + 120;
//StickGas = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] + 125;
 
GyroFaktor = ((float) Parameter_Gyro_P + 10.0) / (256 / STICK_GAIN);
IntegralFaktor = ((float) Parameter_Gyro_I) / (44000 / STICK_GAIN);
 
/branches/thjac/V1_10/led.c
10,7 → 10,6
static unsigned char pwmtable[32] ={0, 1, 2, 2, 2, 3, 3, 4, 5, 6, 7, 8, 10, 11,
13, 16, 19, 23, 27, 32, 38, 45, 54, 64, 76,
91, 108, 128, 152, 181, 215, 250};
unsigned char J16 = 0, J17 = 0;
 
unsigned char lightsEnabled = 0, lightsOn = 0;
 
/branches/thjac/V1_10/parameter.h
30,23 → 30,6
#define PARAM_PITCH_MIN2 EE_Parameter.UserParam2 // Minimalgas
#define PITCH_ALT_THRESHOLD PITCH_MIN2 // Schwellwert für Höhenregelung
 
/* Setzt den zu verwendenden Pitch-Modus
*/
#define PARAM_PITCH_MODE ( ( EE_Parameter.UserParam8 & 0x0C ) >> 2 ) // Pitch-Mode 0-3
 
#define PARAM_PITCH_MODE_NORMAL 0x00
#define PARAM_PITCH_MODE_NEUTRAL 0x01
#define PARAM_PITCH_MODE_MD 0x02
 
/* Wenn gesetzt, wird nach ca. 2s andauernder Stick-Stellung auf Minimum
* ein Reset der Pitch-Regelung durchgeführt, so daß der MK ohne Aus- und
* Einschalten der Motoren wieder starten kann. Die Pitch-Regelung
* schaltet auf Leerlaufgas zurück und der Stick kann losgelassen werden,
* ohne das Gas gegeben wird.
*/
#define PARAM_PITCH_RESTART_ENABLED ( EE_Parameter.UserParam8 & 0x10 ) // 0=deaktiviert 1=aktiviert
 
 
/******************************************************************************************
* Parameter für Neutral-Pitch-Steuerung
*/
106,12 → 89,18
#define PARAM_LED_STICK_ENABLED ( EE_Parameter.UserParam7 & 0x40 ) // 0=deaktiviert 1=aktiviert, wird durch Motorkopplung übersteuert
 
 
/* Dieser Parameter legt fest, ob in '+'-Formation (normal) oder 'X'-Formation
* geflogen werden soll. Zur Umschaltung reicht das Setzen des Parameters. Ein
* Umbau der FC oder Einstellungen am Sender sind nicht notwendig.
*/
#define PARAM_X_FORMATION ( EE_Parameter.UserParam8 & 0x01 ) // 0=+, 1=X
 
/* Steuert, ob beim bzw. vor dem Start der Motoren eine Kalibrierung erfolgen
* soll.
*/
#define PARAM_CAL_ON_START ( EE_Parameter.UserParam8 & 0x02 ) // 0=deaktiviert 1=aktiviert
 
/* Pitch Mode
/* Setzt den zu verwendenden Pitch-Modus
*/
#define PARAM_PITCH_MODE (( EE_Parameter.UserParam8 & 0x0C ) >> 2 ) // Pitch-Mode 0-3
 
125,12 → 114,13
* schaltet auf Leerlaufgas zurück und der Stick kann losgelassen werden,
* ohne das Gas gegeben wird.
*/
#define PARAM_PITCH_RESTART_ENABLED ( EE_Parameter.UserParam8 & 0x08 ) // 0=deaktiviert 1=aktiviert
#define PARAM_PITCH_RESTART_ENABLED ( EE_Parameter.UserParam8 & 0x10 ) // 0=deaktiviert 1=aktiviert
 
 
/* Die Motoren können über diesen Parameter aktiviert werden. Ein Wert von 0
* deaktiviert die Motoren und kann zum Testen verwendet werden.
*/
#define PARAM_ENGINE_ENABLED ( EE_Parameter.UserParam8 & 0x10 ) // 0=deaktiviert 1=aktiviert
#define PARAM_ENGINE_ENABLED ( EE_Parameter.UserParam8 & 0x20 ) // 0=deaktiviert 1=aktiviert
 
/* Skalierung des Gasinkrements (Default 15)
*/
/branches/thjac/V1_10/pitch_md.d
0,0 → 1,3
pitch_md.o pitch_md.d : pitch_md.c main.h old_macros.h _Settings.h printf_P.h \
timer0.h uart.h analog.h twimaster.h menu.h rc.h fc.h gps.h spi.h led.h \
parameter.h pitch.h altcon.h
/branches/thjac/V1_10/pitch_md.lst
0,0 → 1,458
1 .file "pitch_md.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __CCP__ = 0x34
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .text
11 .global pitch_md_value
13 pitch_md_value:
14 0000 0F93 push r16
15 0002 1F93 push r17
16 0004 CF93 push r28
17 0006 DF93 push r29
18 /* prologue: function */
19 /* frame size = 0 */
20 0008 8091 0000 lds r24,EE_Parameter+2
21 000c C82F mov r28,r24
22 000e D0E0 ldi r29,lo8(0)
23 0010 FE01 movw r30,r28
24 0012 EE0F lsl r30
25 0014 FF1F rol r31
26 0016 E050 subi r30,lo8(-(PPM_in))
27 0018 F040 sbci r31,hi8(-(PPM_in))
28 001a 0190 ld __tmp_reg__,Z+
29 001c F081 ld r31,Z
30 001e E02D mov r30,__tmp_reg__
31 0020 8091 0000 lds r24,MotorenEin
32 0024 8823 tst r24
33 0026 01F4 brne .+2
34 0028 00C0 rjmp .L2
35 002a 0091 0000 lds r16,stickValue
36 002e 1091 0000 lds r17,(stickValue)+1
37 0032 1093 0000 sts (lastStickValue)+1,r17
38 0036 0093 0000 sts lastStickValue,r16
39 003a EE9F mul r30,r30
40 003c C001 movw r24,r0
41 003e EF9F mul r30,r31
42 0040 900D add r25,r0
43 0042 FE9F mul r31,r30
44 0044 900D add r25,r0
45 0046 1124 clr r1
46 0048 1E16 cp __zero_reg__,r30
47 004a 1F06 cpc __zero_reg__,r31
48 004c 04F4 brge .L3
49 004e 66E9 ldi r22,lo8(150)
50 0050 70E0 ldi r23,hi8(150)
51 0052 00C0 rjmp .L32
52 .L3:
53 0054 6AE6 ldi r22,lo8(-150)
54 0056 7FEF ldi r23,hi8(-150)
55 .L32:
56 0058 0E94 0000 call __divmodhi4
57 005c 6E0F add r22,r30
58 005e 7F1F adc r23,r31
59 0060 7093 0000 sts (temp)+1,r23
60 0064 6093 0000 sts temp,r22
61 0068 4091 0000 lds r20,temp
62 006c 5091 0000 lds r21,(temp)+1
63 0070 5093 0000 sts (stickValue)+1,r21
64 0074 4093 0000 sts stickValue,r20
65 0078 6091 0000 lds r22,pitchOffset
66 007c 7091 0000 lds r23,(pitchOffset)+1
67 0080 9B01 movw r18,r22
68 0082 240F add r18,r20
69 0084 351F adc r19,r21
70 0086 3093 0000 sts (targetPitchCount)+1,r19
71 008a 2093 0000 sts targetPitchCount,r18
72 008e 8091 0000 lds r24,state
73 0092 8430 cpi r24,lo8(4)
74 0094 01F4 brne .+2
75 0096 00C0 rjmp .L9
76 0098 8530 cpi r24,lo8(5)
77 009a 00F4 brsh .L14
78 009c 8230 cpi r24,lo8(2)
79 009e 01F0 breq .L7
80 00a0 8330 cpi r24,lo8(3)
81 00a2 00F0 brlo .+2
82 00a4 00C0 rjmp .L8
83 00a6 8130 cpi r24,lo8(1)
84 00a8 01F0 breq .+2
85 00aa 00C0 rjmp .L5
86 00ac 00C0 rjmp .L35
87 .L14:
88 00ae 8630 cpi r24,lo8(6)
89 00b0 01F4 brne .+2
90 00b2 00C0 rjmp .L11
91 00b4 8630 cpi r24,lo8(6)
92 00b6 00F4 brsh .+2
93 00b8 00C0 rjmp .L10
94 00ba 8730 cpi r24,lo8(7)
95 00bc 01F4 brne .+2
96 00be 00C0 rjmp .L12
97 00c0 8830 cpi r24,lo8(8)
98 00c2 01F0 breq .+2
99 00c4 00C0 rjmp .L5
100 00c6 00C0 rjmp .L36
101 .L35:
102 00c8 E091 0000 lds r30,EE_Parameter+1
103 00cc F0E0 ldi r31,lo8(0)
104 00ce EE0F lsl r30
105 00d0 FF1F rol r31
106 00d2 E050 subi r30,lo8(-(PPM_in))
107 00d4 F040 sbci r31,hi8(-(PPM_in))
108 00d6 0190 ld __tmp_reg__,Z+
109 00d8 F081 ld r31,Z
110 00da E02D mov r30,__tmp_reg__
111 00dc F7FF sbrs r31,7
112 00de 00C0 rjmp .L16
113 00e0 F095 com r31
114 00e2 E195 neg r30
115 00e4 FF4F sbci r31,lo8(-1)
116 .L16:
117 00e6 E734 cpi r30,71
118 00e8 F105 cpc r31,__zero_reg__
119 00ea 04F0 brlt .L15
120 00ec 82E0 ldi r24,lo8(2)
121 00ee 00C0 rjmp .L33
122 .L15:
123 00f0 83E0 ldi r24,lo8(3)
124 00f2 00C0 rjmp .L33
125 .L7:
126 00f4 3093 0000 sts (actualPitchCount)+1,r19
127 00f8 2093 0000 sts actualPitchCount,r18
128 00fc 7497 sbiw r30,20
129 00fe 04F0 brlt .L17
130 0100 4017 cp r20,r16
131 0102 5107 cpc r21,r17
132 0104 01F0 breq .L18
133 .L17:
134 0106 84E6 ldi r24,lo8(100)
135 0108 90E0 ldi r25,hi8(100)
136 010a 9093 0000 sts (timer)+1,r25
137 010e 8093 0000 sts timer,r24
138 0112 00C0 rjmp .L5
139 .L18:
140 0114 8091 0000 lds r24,timer
141 0118 9091 0000 lds r25,(timer)+1
142 011c 0197 sbiw r24,1
143 011e 9093 0000 sts (timer)+1,r25
144 0122 8093 0000 sts timer,r24
145 0126 892B or r24,r25
146 0128 01F0 breq .+2
147 012a 00C0 rjmp .L5
148 012c 8091 0000 lds r24,EE_Parameter+29
149 0130 90E0 ldi r25,lo8(0)
150 0132 8217 cp r24,r18
151 0134 9307 cpc r25,r19
152 0136 01F4 brne .+2
153 0138 00C0 rjmp .L5
154 013a 2093 0000 sts EE_Parameter+29,r18
155 013e 0E94 0000 call GetActiveParamSetNumber
156 0142 60E0 ldi r22,lo8(EE_Parameter)
157 0144 70E0 ldi r23,hi8(EE_Parameter)
158 0146 46E5 ldi r20,lo8(86)
159 0148 0E94 0000 call WriteParameterSet
160 014c 84EF ldi r24,lo8(500)
161 014e 91E0 ldi r25,hi8(500)
162 0150 9093 0000 sts (beeptime)+1,r25
163 0154 8093 0000 sts beeptime,r24
164 0158 00C0 rjmp .L5
165 .L8:
166 015a 85E0 ldi r24,lo8(5)
167 015c 90E0 ldi r25,hi8(5)
168 015e 9093 0000 sts (delay)+1,r25
169 0162 8093 0000 sts delay,r24
170 0166 3697 sbiw r30,6
171 0168 04F0 brlt .L19
172 016a 8091 0000 lds r24,EE_Parameter+29
173 016e 8093 0000 sts pitchOffset,r24
174 0172 1092 0000 sts pitchOffset+1,__zero_reg__
175 0176 00C0 rjmp .L5
176 .L19:
177 0178 8091 0000 lds r24,EE_Parameter+29
178 017c 90E0 ldi r25,lo8(0)
179 017e 6817 cp r22,r24
180 0180 7907 cpc r23,r25
181 0182 01F0 breq .+2
182 0184 00C0 rjmp .L5
183 0186 84E0 ldi r24,lo8(4)
184 0188 00C0 rjmp .L33
185 .L9:
186 018a CF01 movw r24,r30
187 018c F7FF sbrs r31,7
188 018e 00C0 rjmp .L20
189 0190 8827 clr r24
190 0192 9927 clr r25
191 0194 8E1B sub r24,r30
192 0196 9F0B sbc r25,r31
193 .L20:
194 0198 0B97 sbiw r24,11
195 019a 04F4 brge .+2
196 019c 00C0 rjmp .L5
197 019e 1092 0000 sts (delay)+1,__zero_reg__
198 01a2 1092 0000 sts delay,__zero_reg__
199 01a6 1E16 cp __zero_reg__,r30
200 01a8 1F06 cpc __zero_reg__,r31
201 01aa 04F4 brge .+2
202 01ac 00C0 rjmp .L34
203 01ae 00C0 rjmp .L5
204 .L10:
205 01b0 8091 0000 lds r24,EE_Parameter+51
206 01b4 84FF sbrs r24,4
207 01b6 00C0 rjmp .L21
208 01b8 CC0F lsl r28
209 01ba DD1F rol r29
210 01bc C050 subi r28,lo8(-(PPM_in))
211 01be D040 sbci r29,hi8(-(PPM_in))
212 01c0 8881 ld r24,Y
213 01c2 9981 ldd r25,Y+1
214 01c4 8C5A subi r24,lo8(-84)
215 01c6 9F4F sbci r25,hi8(-84)
216 01c8 04F0 brlt .L22
217 01ca 84E6 ldi r24,lo8(100)
218 01cc 90E0 ldi r25,hi8(100)
219 01ce 9093 0000 sts (timer)+1,r25
220 01d2 8093 0000 sts timer,r24
221 01d6 00C0 rjmp .L21
222 .L22:
223 01d8 8091 0000 lds r24,timer
224 01dc 9091 0000 lds r25,(timer)+1
225 01e0 0197 sbiw r24,1
226 01e2 9093 0000 sts (timer)+1,r25
227 01e6 8093 0000 sts timer,r24
228 01ea 892B or r24,r25
229 01ec 01F4 brne .L21
230 01ee 83E0 ldi r24,lo8(3)
231 01f0 8093 0000 sts state,r24
232 01f4 1092 0000 sts (pitchOffset)+1,__zero_reg__
233 01f8 1092 0000 sts pitchOffset,__zero_reg__
234 01fc 1092 0000 sts (targetPitchCount)+1,__zero_reg__
235 0200 1092 0000 sts targetPitchCount,__zero_reg__
236 0204 1092 0000 sts (actualPitchCount)+1,__zero_reg__
237 0208 1092 0000 sts actualPitchCount,__zero_reg__
238 020c 84EF ldi r24,lo8(500)
239 020e 91E0 ldi r25,hi8(500)
240 0210 9093 0000 sts (beeptime)+1,r25
241 0214 8093 0000 sts beeptime,r24
242 .L21:
243 0218 8091 0000 lds r24,EE_Parameter+30
244 021c 282F mov r18,r24
245 021e 30E0 ldi r19,lo8(0)
246 0220 8091 0000 lds r24,targetPitchCount
247 0224 9091 0000 lds r25,(targetPitchCount)+1
248 0228 8217 cp r24,r18
249 022a 9307 cpc r25,r19
250 022c 04F4 brge .L23
251 022e 3093 0000 sts (targetPitchCount)+1,r19
252 0232 2093 0000 sts targetPitchCount,r18
253 .L23:
254 0236 4C5F subi r20,lo8(-(4))
255 0238 5F4F sbci r21,hi8(-(4))
256 023a 4930 cpi r20,9
257 023c 5105 cpc r21,__zero_reg__
258 023e 00F0 brlo .+2
259 0240 00C0 rjmp .L5
260 0242 0E94 0000 call altcon_lock
261 0246 89E1 ldi r24,lo8(25)
262 0248 90E0 ldi r25,hi8(25)
263 024a 9093 0000 sts (timer)+1,r25
264 024e 8093 0000 sts timer,r24
265 0252 86E0 ldi r24,lo8(6)
266 0254 00C0 rjmp .L33
267 .L11:
268 0256 3496 adiw r30,4
269 0258 3997 sbiw r30,9
270 025a 00F4 brsh .L34
271 025c 0417 cp r16,r20
272 025e 1507 cpc r17,r21
273 0260 01F4 brne .L34
274 0262 8091 0000 lds r24,timer
275 0266 9091 0000 lds r25,(timer)+1
276 026a 0197 sbiw r24,1
277 026c 9093 0000 sts (timer)+1,r25
278 0270 8093 0000 sts timer,r24
279 0274 892B or r24,r25
280 0276 01F0 breq .+2
281 0278 00C0 rjmp .L5
282 027a 87E0 ldi r24,lo8(7)
283 027c 00C0 rjmp .L33
284 .L12:
285 027e 0E94 0000 call altcon_start
286 0282 88E0 ldi r24,lo8(8)
287 0284 00C0 rjmp .L33
288 .L36:
289 0286 F7FF sbrs r31,7
290 0288 00C0 rjmp .L25
291 028a F095 com r31
292 028c E195 neg r30
293 028e FF4F sbci r31,lo8(-1)
294 .L25:
295 0290 3697 sbiw r30,6
296 0292 04F0 brlt .L5
297 0294 0E94 0000 call altcon_stop
298 0298 8091 0000 lds r24,averageN
299 029c 9091 0000 lds r25,(averageN)+1
300 02a0 64E0 ldi r22,lo8(4)
301 02a2 70E0 ldi r23,hi8(4)
302 02a4 0E94 0000 call __divmodhi4
303 02a8 8091 0000 lds r24,pitchOffset
304 02ac 9091 0000 lds r25,(pitchOffset)+1
305 02b0 861B sub r24,r22
306 02b2 970B sbc r25,r23
307 02b4 9093 0000 sts (pitchOffset)+1,r25
308 02b8 8093 0000 sts pitchOffset,r24
309 02bc 2091 0000 lds r18,stickValue
310 02c0 3091 0000 lds r19,(stickValue)+1
311 02c4 820F add r24,r18
312 02c6 931F adc r25,r19
313 02c8 9093 0000 sts (targetPitchCount)+1,r25
314 02cc 8093 0000 sts targetPitchCount,r24
315 .L34:
316 02d0 85E0 ldi r24,lo8(5)
317 02d2 00C0 rjmp .L33
318 .L2:
319 02d4 1092 0000 sts (actualPitchCount)+1,__zero_reg__
320 02d8 1092 0000 sts actualPitchCount,__zero_reg__
321 02dc 1092 0000 sts (targetPitchCount)+1,__zero_reg__
322 02e0 1092 0000 sts targetPitchCount,__zero_reg__
323 02e4 1092 0000 sts (pitchOffset)+1,__zero_reg__
324 02e8 1092 0000 sts pitchOffset,__zero_reg__
325 02ec 1092 0000 sts (stickValue)+1,__zero_reg__
326 02f0 1092 0000 sts stickValue,__zero_reg__
327 02f4 81E0 ldi r24,lo8(1)
328 .L33:
329 02f6 8093 0000 sts state,r24
330 .L5:
331 02fa 8091 0000 lds r24,pitchOffset
332 02fe 9091 0000 lds r25,(pitchOffset)+1
333 0302 97FF sbrs r25,7
334 0304 00C0 rjmp .L26
335 0306 1092 0000 sts (pitchOffset)+1,__zero_reg__
336 030a 1092 0000 sts pitchOffset,__zero_reg__
337 .L26:
338 030e 8091 0000 lds r24,delayCounter
339 0312 9091 0000 lds r25,(delayCounter)+1
340 0316 892B or r24,r25
341 0318 01F4 brne .L27
342 031a 2091 0000 lds r18,actualPitchCount
343 031e 3091 0000 lds r19,(actualPitchCount)+1
344 0322 8091 0000 lds r24,targetPitchCount
345 0326 9091 0000 lds r25,(targetPitchCount)+1
346 032a 821B sub r24,r18
347 032c 930B sbc r25,r19
348 032e 8430 cpi r24,4
349 0330 9105 cpc r25,__zero_reg__
350 0332 04F0 brlt .L28
351 0334 83E0 ldi r24,lo8(3)
352 0336 90E0 ldi r25,hi8(3)
353 0338 00C0 rjmp .L29
354 .L28:
355 033a 4FEF ldi r20,hi8(-3)
356 033c 8D3F cpi r24,lo8(-3)
357 033e 9407 cpc r25,r20
358 0340 04F4 brge .L29
359 0342 8DEF ldi r24,lo8(-3)
360 0344 9FEF ldi r25,hi8(-3)
361 .L29:
362 0346 820F add r24,r18
363 0348 931F adc r25,r19
364 034a 9093 0000 sts (actualPitchCount)+1,r25
365 034e 8093 0000 sts actualPitchCount,r24
366 0352 8091 0000 lds r24,delay
367 0356 9091 0000 lds r25,(delay)+1
368 035a 0196 adiw r24,1
369 035c 9093 0000 sts (delayCounter)+1,r25
370 0360 8093 0000 sts delayCounter,r24
371 .L27:
372 0364 8091 0000 lds r24,delayCounter
373 0368 9091 0000 lds r25,(delayCounter)+1
374 036c 0197 sbiw r24,1
375 036e 9093 0000 sts (delayCounter)+1,r25
376 0372 8093 0000 sts delayCounter,r24
377 0376 8091 0000 lds r24,actualPitchCount
378 037a 9091 0000 lds r25,(actualPitchCount)+1
379 037e 97FF sbrs r25,7
380 0380 00C0 rjmp .L30
381 0382 1092 0000 sts (actualPitchCount)+1,__zero_reg__
382 0386 1092 0000 sts actualPitchCount,__zero_reg__
383 .L30:
384 038a 8091 0000 lds r24,stickValue
385 038e 9091 0000 lds r25,(stickValue)+1
386 0392 9093 0000 sts (DebugOut+54)+1,r25
387 0396 8093 0000 sts DebugOut+54,r24
388 039a 8091 0000 lds r24,actualPitchCount
389 039e 9091 0000 lds r25,actualPitchCount+1
390 03a2 8093 0000 sts DebugOut+58,r24
391 03a6 9093 0000 sts DebugOut+59,r25
392 03aa 2091 0000 lds r18,pitchOffset
393 03ae 3091 0000 lds r19,(pitchOffset)+1
394 03b2 3093 0000 sts (DebugOut+60)+1,r19
395 03b6 2093 0000 sts DebugOut+60,r18
396 /* epilogue start */
397 03ba DF91 pop r29
398 03bc CF91 pop r28
399 03be 1F91 pop r17
400 03c0 0F91 pop r16
401 03c2 0895 ret
403 .global stickValue
404 .global stickValue
405 .section .bss
408 stickValue:
409 0000 0000 .skip 2,0
410 .global lastStickValue
411 .global lastStickValue
414 lastStickValue:
415 0002 0000 .skip 2,0
416 .global delay
417 .global delay
420 delay:
421 0004 0000 .skip 2,0
422 .global delayCounter
423 .global delayCounter
426 delayCounter:
427 0006 0000 .skip 2,0
428 .comm actualPitchCount,2,1
429 .comm targetPitchCount,2,1
430 .comm pitchOffset,2,1
431 .comm state,1,1
432 .comm timer,2,1
433 .comm temp,2,1
DEFINED SYMBOLS
*ABS*:00000000 pitch_md.c
c:\TEMP/ccyyuOZC.s:2 *ABS*:0000003f __SREG__
c:\TEMP/ccyyuOZC.s:3 *ABS*:0000003e __SP_H__
c:\TEMP/ccyyuOZC.s:4 *ABS*:0000003d __SP_L__
c:\TEMP/ccyyuOZC.s:5 *ABS*:00000034 __CCP__
c:\TEMP/ccyyuOZC.s:6 *ABS*:00000000 __tmp_reg__
c:\TEMP/ccyyuOZC.s:7 *ABS*:00000001 __zero_reg__
c:\TEMP/ccyyuOZC.s:13 .text:00000000 pitch_md_value
c:\TEMP/ccyyuOZC.s:408 .bss:00000000 stickValue
c:\TEMP/ccyyuOZC.s:414 .bss:00000002 lastStickValue
*COM*:00000002 temp
*COM*:00000002 pitchOffset
*COM*:00000002 targetPitchCount
*COM*:00000001 state
*COM*:00000002 actualPitchCount
*COM*:00000002 timer
c:\TEMP/ccyyuOZC.s:420 .bss:00000004 delay
c:\TEMP/ccyyuOZC.s:426 .bss:00000006 delayCounter
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
EE_Parameter
PPM_in
MotorenEin
__divmodhi4
GetActiveParamSetNumber
WriteParameterSet
beeptime
altcon_lock
altcon_start
altcon_stop
averageN
DebugOut
/branches/thjac/V1_10/pitch_neutral.d
0,0 → 1,3
pitch_neutral.o pitch_neutral.d : pitch_neutral.c main.h old_macros.h _Settings.h \
printf_P.h timer0.h uart.h analog.h twimaster.h menu.h rc.h fc.h gps.h \
spi.h led.h parameter.h altcon.h pitch.h pitch_neutral.h
/branches/thjac/V1_10/pitch_neutral.lst
0,0 → 1,362
1 .file "pitch_neutral.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __CCP__ = 0x34
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .text
11 .global pitch_neutral_value
13 pitch_neutral_value:
14 0000 CF92 push r12
15 0002 DF92 push r13
16 0004 EF92 push r14
17 0006 FF92 push r15
18 0008 0F93 push r16
19 000a 1F93 push r17
20 000c CF93 push r28
21 000e DF93 push r29
22 /* prologue: function */
23 /* frame size = 0 */
24 0010 8091 0000 lds r24,MotorenEin
25 0014 8823 tst r24
26 0016 01F4 brne .+2
27 0018 00C0 rjmp .L2
28 001a C090 0000 lds r12,stickValue
29 001e D090 0000 lds r13,(stickValue)+1
30 0022 D092 0000 sts (lastStickValue)+1,r13
31 0026 C092 0000 sts lastStickValue,r12
32 002a 8091 0000 lds r24,EE_Parameter+2
33 002e 082F mov r16,r24
34 0030 10E0 ldi r17,lo8(0)
35 0032 F801 movw r30,r16
36 0034 EE0F lsl r30
37 0036 FF1F rol r31
38 0038 E050 subi r30,lo8(-(PPM_in))
39 003a F040 sbci r31,hi8(-(PPM_in))
40 003c 0190 ld __tmp_reg__,Z+
41 003e F081 ld r31,Z
42 0040 E02D mov r30,__tmp_reg__
43 0042 EE9F mul r30,r30
44 0044 C001 movw r24,r0
45 0046 EF9F mul r30,r31
46 0048 900D add r25,r0
47 004a FE9F mul r31,r30
48 004c 900D add r25,r0
49 004e 1124 clr r1
50 0050 1E16 cp __zero_reg__,r30
51 0052 1F06 cpc __zero_reg__,r31
52 0054 04F4 brge .L3
53 0056 66E9 ldi r22,lo8(150)
54 0058 70E0 ldi r23,hi8(150)
55 005a 00C0 rjmp .L25
56 .L3:
57 005c 6AE6 ldi r22,lo8(-150)
58 005e 7FEF ldi r23,hi8(-150)
59 .L25:
60 0060 0E94 0000 call __divmodhi4
61 0064 E60F add r30,r22
62 0066 F71F adc r31,r23
63 0068 F093 0000 sts (temp)+1,r31
64 006c E093 0000 sts temp,r30
65 0070 C601 movw r24,r12
66 0072 880F lsl r24
67 0074 991F rol r25
68 0076 2091 0000 lds r18,temp
69 007a 3091 0000 lds r19,(temp)+1
70 007e 820F add r24,r18
71 0080 931F adc r25,r19
72 0082 63E0 ldi r22,lo8(3)
73 0084 70E0 ldi r23,hi8(3)
74 0086 0E94 0000 call __divmodhi4
75 008a 9B01 movw r18,r22
76 008c 7093 0000 sts (stickValue)+1,r23
77 0090 6093 0000 sts stickValue,r22
78 0094 C091 0000 lds r28,pitchOffset
79 0098 D091 0000 lds r29,(pitchOffset)+1
80 009c 7B01 movw r14,r22
81 009e EC0E add r14,r28
82 00a0 FD1E adc r15,r29
83 00a2 8091 0000 lds r24,state
84 00a6 8530 cpi r24,lo8(5)
85 00a8 01F4 brne .+2
86 00aa 00C0 rjmp .L9
87 00ac 8630 cpi r24,lo8(6)
88 00ae 00F4 brsh .L13
89 00b0 8330 cpi r24,lo8(3)
90 00b2 01F0 breq .L7
91 00b4 8430 cpi r24,lo8(4)
92 00b6 00F0 brlo .+2
93 00b8 00C0 rjmp .L8
94 00ba 8230 cpi r24,lo8(2)
95 00bc 01F0 breq .+2
96 00be 00C0 rjmp .L5
97 00c0 00C0 rjmp .L28
98 .L13:
99 00c2 8730 cpi r24,lo8(7)
100 00c4 01F4 brne .+2
101 00c6 00C0 rjmp .L11
102 00c8 8730 cpi r24,lo8(7)
103 00ca 00F4 brsh .+2
104 00cc 00C0 rjmp .L10
105 00ce 8830 cpi r24,lo8(8)
106 00d0 01F0 breq .+2
107 00d2 00C0 rjmp .L5
108 00d4 00C0 rjmp .L29
109 .L28:
110 00d6 46E0 ldi r20,lo8(6)
111 00d8 C416 cp r12,r20
112 00da D104 cpc r13,__zero_reg__
113 00dc 04F4 brge .+2
114 00de 00C0 rjmp .L5
115 00e0 C601 movw r24,r12
116 00e2 861B sub r24,r22
117 00e4 970B sbc r25,r23
118 00e6 9C01 movw r18,r24
119 00e8 8091 0000 lds r24,EE_Parameter+29
120 00ec 90E0 ldi r25,lo8(0)
121 00ee 2817 cp r18,r24
122 00f0 3907 cpc r19,r25
123 00f2 04F4 brge .+2
124 00f4 00C0 rjmp .L5
125 00f6 D092 0000 sts (pitchOffset)+1,r13
126 00fa C092 0000 sts pitchOffset,r12
127 00fe 83E0 ldi r24,lo8(3)
128 0100 8093 0000 sts state,r24
129 0104 89E1 ldi r24,lo8(25)
130 0106 90E0 ldi r25,hi8(25)
131 0108 9093 0000 sts (pitchNeutralTimer)+1,r25
132 010c 8093 0000 sts pitchNeutralTimer,r24
133 0110 00C0 rjmp .L5
134 .L7:
135 0112 8091 0000 lds r24,pitchNeutralTimer
136 0116 9091 0000 lds r25,(pitchNeutralTimer)+1
137 011a 0197 sbiw r24,1
138 011c 9093 0000 sts (pitchNeutralTimer)+1,r25
139 0120 8093 0000 sts pitchNeutralTimer,r24
140 0124 892B or r24,r25
141 0126 01F4 brne .L15
142 0128 1092 0000 sts (pitchOffset)+1,__zero_reg__
143 012c 1092 0000 sts pitchOffset,__zero_reg__
144 0130 82E0 ldi r24,lo8(2)
145 0132 8093 0000 sts state,r24
146 .L15:
147 0136 2B5F subi r18,lo8(-(5))
148 0138 3F4F sbci r19,hi8(-(5))
149 013a 2B30 cpi r18,11
150 013c 3105 cpc r19,__zero_reg__
151 013e 00F0 brlo .+2
152 0140 00C0 rjmp .L14
153 0142 8091 0000 lds r24,EE_Parameter+8
154 0146 80FF sbrs r24,0
155 0148 00C0 rjmp .L16
156 014a 87E0 ldi r24,lo8(7)
157 014c 00C0 rjmp .L26
158 .L16:
159 014e 84E0 ldi r24,lo8(4)
160 0150 00C0 rjmp .L26
161 .L8:
162 0152 8091 0000 lds r24,EE_Parameter+30
163 0156 C82F mov r28,r24
164 0158 D0E0 ldi r29,lo8(0)
165 015a EC16 cp r14,r28
166 015c FD06 cpc r15,r29
167 015e 04F4 brge .+2
168 0160 00C0 rjmp .L14
169 0162 00C0 rjmp .L5
170 .L9:
171 0164 8091 0000 lds r24,EE_Parameter+51
172 0168 84FF sbrs r24,4
173 016a 00C0 rjmp .L17
174 016c 000F lsl r16
175 016e 111F rol r17
176 0170 0050 subi r16,lo8(-(PPM_in))
177 0172 1040 sbci r17,hi8(-(PPM_in))
178 0174 F801 movw r30,r16
179 0176 8081 ld r24,Z
180 0178 9181 ldd r25,Z+1
181 017a 8C5A subi r24,lo8(-84)
182 017c 9F4F sbci r25,hi8(-84)
183 017e 04F0 brlt .L18
184 0180 84E6 ldi r24,lo8(100)
185 0182 90E0 ldi r25,hi8(100)
186 0184 9093 0000 sts (pitchNeutralTimer)+1,r25
187 0188 8093 0000 sts pitchNeutralTimer,r24
188 018c 00C0 rjmp .L17
189 .L18:
190 018e 8091 0000 lds r24,pitchNeutralTimer
191 0192 9091 0000 lds r25,(pitchNeutralTimer)+1
192 0196 0197 sbiw r24,1
193 0198 9093 0000 sts (pitchNeutralTimer)+1,r25
194 019c 8093 0000 sts pitchNeutralTimer,r24
195 01a0 892B or r24,r25
196 01a2 01F4 brne .L17
197 01a4 82E0 ldi r24,lo8(2)
198 01a6 8093 0000 sts state,r24
199 01aa 1092 0000 sts (pitchOffset)+1,__zero_reg__
200 01ae 1092 0000 sts pitchOffset,__zero_reg__
201 01b2 84EF ldi r24,lo8(500)
202 01b4 91E0 ldi r25,hi8(500)
203 01b6 9093 0000 sts (beeptime)+1,r25
204 01ba 8093 0000 sts beeptime,r24
205 .L17:
206 01be 8091 0000 lds r24,EE_Parameter+30
207 01c2 90E0 ldi r25,lo8(0)
208 01c4 E701 movw r28,r14
209 01c6 E816 cp r14,r24
210 01c8 F906 cpc r15,r25
211 01ca 04F4 brge .L19
212 01cc EC01 movw r28,r24
213 .L19:
214 01ce 2C5F subi r18,lo8(-(4))
215 01d0 3F4F sbci r19,hi8(-(4))
216 01d2 2930 cpi r18,9
217 01d4 3105 cpc r19,__zero_reg__
218 01d6 00F0 brlo .+2
219 01d8 00C0 rjmp .L14
220 01da 89E1 ldi r24,lo8(25)
221 01dc 90E0 ldi r25,hi8(25)
222 01de 9093 0000 sts (pitchNeutralTimer)+1,r25
223 01e2 8093 0000 sts pitchNeutralTimer,r24
224 01e6 86E0 ldi r24,lo8(6)
225 01e8 00C0 rjmp .L26
226 .L10:
227 01ea CB01 movw r24,r22
228 01ec 0496 adiw r24,4
229 01ee 0997 sbiw r24,9
230 01f0 00F4 brsh .L20
231 01f2 C616 cp r12,r22
232 01f4 D706 cpc r13,r23
233 01f6 01F4 brne .L20
234 01f8 8091 0000 lds r24,pitchNeutralTimer
235 01fc 9091 0000 lds r25,(pitchNeutralTimer)+1
236 0200 0197 sbiw r24,1
237 0202 9093 0000 sts (pitchNeutralTimer)+1,r25
238 0206 8093 0000 sts pitchNeutralTimer,r24
239 020a 892B or r24,r25
240 020c 01F4 brne .L5
241 020e 87E0 ldi r24,lo8(7)
242 0210 00C0 rjmp .L27
243 .L20:
244 0212 85E0 ldi r24,lo8(5)
245 .L27:
246 0214 8093 0000 sts state,r24
247 0218 00C0 rjmp .L5
248 .L11:
249 021a 0E94 0000 call altcon_start
250 021e 88E0 ldi r24,lo8(8)
251 0220 00C0 rjmp .L27
252 .L29:
253 0222 CB01 movw r24,r22
254 0224 77FF sbrs r23,7
255 0226 00C0 rjmp .L21
256 0228 8827 clr r24
257 022a 9927 clr r25
258 022c 861B sub r24,r22
259 022e 970B sbc r25,r23
260 .L21:
261 0230 0697 sbiw r24,6
262 0232 04F0 brlt .L5
263 0234 8091 0000 lds r24,averageN
264 0238 9091 0000 lds r25,(averageN)+1
265 023c 64E0 ldi r22,lo8(4)
266 023e 70E0 ldi r23,hi8(4)
267 0240 0E94 0000 call __divmodhi4
268 0244 CE01 movw r24,r28
269 0246 861B sub r24,r22
270 0248 970B sbc r25,r23
271 024a 9093 0000 sts (pitchOffset)+1,r25
272 024e 8093 0000 sts pitchOffset,r24
273 0252 E901 movw r28,r18
274 0254 C80F add r28,r24
275 0256 D91F adc r29,r25
276 0258 0E94 0000 call altcon_stop
277 025c 85E0 ldi r24,lo8(5)
278 .L26:
279 025e 8093 0000 sts state,r24
280 0262 00C0 rjmp .L14
281 .L2:
282 0264 1092 0000 sts (pitchOffset)+1,__zero_reg__
283 0268 1092 0000 sts pitchOffset,__zero_reg__
284 026c 1092 0000 sts (stickValue)+1,__zero_reg__
285 0270 1092 0000 sts stickValue,__zero_reg__
286 0274 82E0 ldi r24,lo8(2)
287 0276 8093 0000 sts state,r24
288 027a C0E0 ldi r28,lo8(0)
289 027c D0E0 ldi r29,hi8(0)
290 027e 00C0 rjmp .L14
291 .L5:
292 0280 E701 movw r28,r14
293 .L14:
294 0282 8091 0000 lds r24,pitchOffset
295 0286 9091 0000 lds r25,(pitchOffset)+1
296 028a 97FF sbrs r25,7
297 028c 00C0 rjmp .L22
298 028e 1092 0000 sts (pitchOffset)+1,__zero_reg__
299 0292 1092 0000 sts pitchOffset,__zero_reg__
300 .L22:
301 0296 9E01 movw r18,r28
302 0298 D7FF sbrs r29,7
303 029a 00C0 rjmp .L23
304 029c 20E0 ldi r18,lo8(0)
305 029e 30E0 ldi r19,hi8(0)
306 .L23:
307 02a0 8091 0000 lds r24,stickValue
308 02a4 9091 0000 lds r25,(stickValue)+1
309 02a8 9093 0000 sts (DebugOut+54)+1,r25
310 02ac 8093 0000 sts DebugOut+54,r24
311 02b0 3093 0000 sts (DebugOut+58)+1,r19
312 02b4 2093 0000 sts DebugOut+58,r18
313 02b8 8091 0000 lds r24,pitchOffset
314 02bc 9091 0000 lds r25,(pitchOffset)+1
315 02c0 9093 0000 sts (DebugOut+60)+1,r25
316 02c4 8093 0000 sts DebugOut+60,r24
317 02c8 C901 movw r24,r18
318 /* epilogue start */
319 02ca DF91 pop r29
320 02cc CF91 pop r28
321 02ce 1F91 pop r17
322 02d0 0F91 pop r16
323 02d2 FF90 pop r15
324 02d4 EF90 pop r14
325 02d6 DF90 pop r13
326 02d8 CF90 pop r12
327 02da 0895 ret
329 .lcomm stickValue,2
330 .lcomm lastStickValue,2
331 .lcomm pitchOffset,2
332 .lcomm state,1
333 .data
336 pitchNeutralTimer:
337 0000 1900 .word 25
338 .lcomm temp,2
DEFINED SYMBOLS
*ABS*:00000000 pitch_neutral.c
c:\TEMP/ccEXHUa7.s:2 *ABS*:0000003f __SREG__
c:\TEMP/ccEXHUa7.s:3 *ABS*:0000003e __SP_H__
c:\TEMP/ccEXHUa7.s:4 *ABS*:0000003d __SP_L__
c:\TEMP/ccEXHUa7.s:5 *ABS*:00000034 __CCP__
c:\TEMP/ccEXHUa7.s:6 *ABS*:00000000 __tmp_reg__
c:\TEMP/ccEXHUa7.s:7 *ABS*:00000001 __zero_reg__
c:\TEMP/ccEXHUa7.s:13 .text:00000000 pitch_neutral_value
.bss:00000000 stickValue
c:\TEMP/ccEXHUa7.s:329 .bss:00000002 lastStickValue
c:\TEMP/ccEXHUa7.s:332 .bss:00000007 temp
c:\TEMP/ccEXHUa7.s:330 .bss:00000004 pitchOffset
c:\TEMP/ccEXHUa7.s:331 .bss:00000006 state
c:\TEMP/ccEXHUa7.s:336 .data:00000000 pitchNeutralTimer
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
MotorenEin
EE_Parameter
PPM_in
__divmodhi4
beeptime
altcon_start
averageN
altcon_stop
DebugOut