Subversion Repositories FlightCtrl

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1997 - 1
   1               		.file	"timer0.c"
2
   2               		.arch atmega1284p
3
   3               	__SREG__ = 0x3f
4
   4               	__SP_H__ = 0x3e
5
   5               	__SP_L__ = 0x3d
6
   6               	__tmp_reg__ = 0
7
   7               	__zero_reg__ = 1
8
   8               		.global __do_copy_data
9
   9               		.global __do_clear_bss
10
  10               	.global	ServoRollValue
11
  11               	.global	ServoRollValue
12
  12               		.section .bss
13
  15               	ServoRollValue:
14
  16 0000 0000      		.skip 2,0
15
  17               	.global	ServoNickValue
16
  18               	.global	ServoNickValue
17
  21               	ServoNickValue:
18
  22 0002 0000      		.skip 2,0
19
  23               	.global	BeepMuster
20
  24               		.data
21
  27               	BeepMuster:
22
  28 0000 FFFF      		.word	-1
23
  29               	.global	ServoRollOffset
24
  32               	ServoRollOffset:
25
  33 0002 C01F      		.word	8128
26
  34               	.global	ServoNickOffset
27
  37               	ServoNickOffset:
28
  38 0004 C01F      		.word	8128
29
  39               	.global	RemainingPulse
30
  40               	.global	RemainingPulse
31
  41               		.section .bss
32
  44               	RemainingPulse:
33
  45 0004 0000      		.skip 2,0
34
  46               	.global	CalculateServoSignals
35
  47               		.data
36
  50               	CalculateServoSignals:
37
  51 0006 01        		.byte	1
38
  52               	.global	ServoActive
39
  53               	.global	ServoActive
40
  54               		.section .bss
41
  57               	ServoActive:
42
  58 0006 00        		.skip 1,0
43
  59               	.global	SendSPI
44
  60               	.global	SendSPI
45
  63               	SendSPI:
46
  64 0007 00        		.skip 1,0
47
  65               	.global	beeptime
48
  66               	.global	beeptime
49
  69               	beeptime:
50
  70 0008 0000      		.skip 2,0
51
  71               	.global	cntKompass
52
  72               	.global	cntKompass
53
  75               	cntKompass:
54
  76 000a 0000      		.skip 2,0
55
  77               	.global	UpdateMotor
56
  78               	.global	UpdateMotor
57
  81               	UpdateMotor:
58
  82 000c 00        		.skip 1,0
59
  83               	.global	CountMilliseconds
60
  84               	.global	CountMilliseconds
61
  87               	CountMilliseconds:
62
  88 000d 0000      		.skip 2,0
63
  89               		.data
64
  92               	cnt_1ms.3:
65
  93 0007 01        		.byte	1
66
  94               		.lcomm cnt.4,1
67
  95               		.lcomm compass_active.5,1
68
  96               		.text
69
  97               	.global	__vector_18
70
  99               	__vector_18:
71
 100               	/* prologue: frame size=0 */
72
 101 0000 1F92      		push __zero_reg__
73
 102 0002 0F92      		push __tmp_reg__
74
 103 0004 0FB6      		in __tmp_reg__,__SREG__
75
 104 0006 0F92      		push __tmp_reg__
76
 105 0008 1124      		clr __zero_reg__
77
 106 000a 2F93      		push r18
78
 107 000c 3F93      		push r19
79
 108 000e 5F93      		push r21
80
 109 0010 6F93      		push r22
81
 110 0012 7F93      		push r23
82
 111 0014 8F93      		push r24
83
 112 0016 9F93      		push r25
84
 113 0018 AF93      		push r26
85
 114 001a BF93      		push r27
86
 115 001c EF93      		push r30
87
 116 001e FF93      		push r31
88
 117               	/* prologue end (size=16) */
89
 118 0020 20E0      		ldi r18,lo8(0)
90
 119 0022 8091 0000 		lds r24,SendSPI
91
 120 0026 8823      		tst r24
92
 121 0028 01F0      		breq .L2
93
 122 002a 8091 0000 		lds r24,SendSPI
94
 123 002e 8150      		subi r24,lo8(-(-1))
95
 124 0030 8093 0000 		sts SendSPI,r24
96
 125               	.L2:
97
 126 0034 8091 0000 		lds r24,SpektrumTimer
98
 127 0038 8823      		tst r24
99
 128 003a 01F0      		breq .L3
100
 129 003c 8150      		subi r24,lo8(-(-1))
101
 130 003e 8093 0000 		sts SpektrumTimer,r24
102
 131               	.L3:
103
 132 0042 8091 0000 		lds r24,cnt.4
104
 133 0046 8150      		subi r24,lo8(-(-1))
105
 134 0048 8093 0000 		sts cnt.4,r24
106
 135 004c 8F3F      		cpi r24,lo8(-1)
107
 136 004e 01F0      		breq .+2
108
 137 0050 00C0      		rjmp .L4
109
 138 0052 89E0      		ldi r24,lo8(9)
110
 139 0054 8093 0000 		sts cnt.4,r24
111
 140 0058 8091 0000 		lds r24,CountMilliseconds
112
 141 005c 9091 0000 		lds r25,(CountMilliseconds)+1
113
 142 0060 0196      		adiw r24,1
114
 143 0062 9093 0000 		sts (CountMilliseconds)+1,r25
115
 144 0066 8093 0000 		sts CountMilliseconds,r24
116
 145 006a 8091 0000 		lds r24,cnt_1ms.3
117
 146 006e 8F5F      		subi r24,lo8(-(1))
118
 147 0070 8170      		andi r24,lo8(1)
119
 148 0072 8093 0000 		sts cnt_1ms.3,r24
120
 149 0076 8823      		tst r24
121
 150 0078 01F4      		brne .L5
122
 151 007a 81E0      		ldi r24,lo8(1)
123
 152 007c 8093 0000 		sts UpdateMotor,r24
124
 153               	.L5:
125
 154 0080 3499      		sbic 38-0x20,4
126
 155 0082 00C0      		rjmp .L6
127
 156 0084 81E0      		ldi r24,lo8(1)
128
 157 0086 8093 0000 		sts compass_active.5,r24
129
 158               	.L6:
130
 159 008a 8091 0000 		lds r24,beeptime
131
 160 008e 9091 0000 		lds r25,(beeptime)+1
132
 161 0092 892B      		or r24,r25
133
 162 0094 01F0      		breq .L7
134
 163 0096 8091 0000 		lds r24,beeptime
135
 164 009a 9091 0000 		lds r25,(beeptime)+1
136
 165 009e 0B97      		sbiw r24,11
137
 166 00a0 00F0      		brlo .L8
138
 167 00a2 8091 0000 		lds r24,beeptime
139
 168 00a6 9091 0000 		lds r25,(beeptime)+1
140
 169 00aa 0A97      		sbiw r24,10
141
 170 00ac 9093 0000 		sts (beeptime)+1,r25
142
 171 00b0 8093 0000 		sts beeptime,r24
143
 172 00b4 00C0      		rjmp .L9
144
 173               	.L8:
145
 174 00b6 1092 0000 		sts (beeptime)+1,__zero_reg__
146
 175 00ba 1092 0000 		sts beeptime,__zero_reg__
147
 176               	.L9:
148
 177 00be 8091 0000 		lds r24,beeptime
149
 178 00c2 9091 0000 		lds r25,(beeptime)+1
150
 179 00c6 2091 0000 		lds r18,BeepMuster
151
 180 00ca 3091 0000 		lds r19,(BeepMuster)+1
152
 181 00ce 8223      		and r24,r18
153
 182 00d0 9323      		and r25,r19
154
 183 00d2 892B      		or r24,r25
155
 184 00d4 01F0      		breq .L10
156
 185 00d6 21E0      		ldi r18,lo8(1)
157
 186 00d8 00C0      		rjmp .L12
158
 187               	.L10:
159
 188 00da 20E0      		ldi r18,lo8(0)
160
 189 00dc 00C0      		rjmp .L12
161
 190               	.L7:
162
 191 00de 8FEF      		ldi r24,lo8(-1)
163
 192 00e0 9FEF      		ldi r25,hi8(-1)
164
 193 00e2 9093 0000 		sts (BeepMuster)+1,r25
165
 194 00e6 8093 0000 		sts BeepMuster,r24
166
 195               	.L12:
167
 196 00ea 8091 0000 		lds r24,PlatinenVersion
168
 197 00ee 2223      		tst r18
169
 198 00f0 01F0      		breq .L13
170
 199 00f2 8A30      		cpi r24,lo8(10)
171
 200 00f4 01F4      		brne .L14
172
 201 00f6 5A9A      		sbi 43-0x20,2
173
 202 00f8 00C0      		rjmp .L4
174
 203               	.L14:
175
 204 00fa 479A      		sbi 40-0x20,7
176
 205 00fc 00C0      		rjmp .L4
177
 206               	.L13:
178
 207 00fe 8A30      		cpi r24,lo8(10)
179
 208 0100 01F4      		brne .L17
180
 209 0102 5A98      		cbi 43-0x20,2
181
 210 0104 00C0      		rjmp .L4
182
 211               	.L17:
183
 212 0106 4798      		cbi 40-0x20,7
184
 213               	.L4:
185
 214 0108 8091 0000 		lds r24,compass_active.5
186
 215 010c 8823      		tst r24
187
 216 010e 01F4      		brne .+2
188
 217 0110 00C0      		rjmp .L1
189
 218 0112 2091 0000 		lds r18,NaviDataOkay
190
 219 0116 2223      		tst r18
191
 220 0118 01F0      		breq .+2
192
 221 011a 00C0      		rjmp .L1
193
 222 011c 8091 0000 		lds r24,Parameter_GlobalConfig
194
 223 0120 83FF      		sbrs r24,3
195
 224 0122 00C0      		rjmp .L1
196
 225 0124 86B1      		in r24,38-0x20
197
 226 0126 9927      		clr r25
198
 227 0128 FC01      		movw r30,r24
199
 228 012a E071      		andi r30,lo8(16)
200
 229 012c F070      		andi r31,hi8(16)
201
 230 012e 84FF      		sbrs r24,4
202
 231 0130 00C0      		rjmp .L20
203
 232 0132 8091 0000 		lds r24,cntKompass
204
 233 0136 9091 0000 		lds r25,(cntKompass)+1
205
 234 013a 0196      		adiw r24,1
206
 235 013c 9093 0000 		sts (cntKompass)+1,r25
207
 236 0140 8093 0000 		sts cntKompass,r24
208
 237 0144 8091 0000 		lds r24,cntKompass
209
 238 0148 9091 0000 		lds r25,(cntKompass)+1
210
 239 014c 895E      		subi r24,lo8(1001)
211
 240 014e 9340      		sbci r25,hi8(1001)
212
 241 0150 00F0      		brlo .L1
213
 242 0152 2093 0000 		sts compass_active.5,r18
214
 243 0156 00C0      		rjmp .L1
215
 244               	.L20:
216
 245 0158 8091 0000 		lds r24,cntKompass
217
 246 015c 9091 0000 		lds r25,(cntKompass)+1
218
 247 0160 892B      		or r24,r25
219
 248 0162 01F0      		breq .L23
220
 249 0164 8091 0000 		lds r24,cntKompass
221
 250 0168 9091 0000 		lds r25,(cntKompass)+1
222
 251 016c 8A56      		subi r24,lo8(362)
223
 252 016e 9140      		sbci r25,hi8(362)
224
 253 0170 00F4      		brsh .L23
225
 254 0172 8091 0000 		lds r24,cntKompass
226
 255 0176 9091 0000 		lds r25,(cntKompass)+1
227
 256 017a 69E2      		ldi r22,lo8(41)
228
 257 017c 70E0      		ldi r23,hi8(41)
229
 258 017e 0E94 0000 		call __udivmodhi4
230
 259 0182 8091 0000 		lds r24,cntKompass
231
 260 0186 9091 0000 		lds r25,(cntKompass)+1
232
 261 018a 860F      		add r24,r22
233
 262 018c 971F      		adc r25,r23
234
 263 018e 9093 0000 		sts (cntKompass)+1,r25
235
 264 0192 8093 0000 		sts cntKompass,r24
236
 265 0196 8091 0000 		lds r24,cntKompass
237
 266 019a 9091 0000 		lds r25,(cntKompass)+1
238
 267 019e 0B97      		sbiw r24,11
239
 268 01a0 00F0      		brlo .L24
240
 269 01a2 8091 0000 		lds r24,cntKompass
241
 270 01a6 9091 0000 		lds r25,(cntKompass)+1
242
 271 01aa 0A97      		sbiw r24,10
243
 272 01ac 9093 0000 		sts (KompassValue)+1,r25
244
 273 01b0 8093 0000 		sts KompassValue,r24
245
 274 01b4 00C0      		rjmp .L23
246
 275               	.L24:
247
 276 01b6 F093 0000 		sts (KompassValue)+1,r31
248
 277 01ba E093 0000 		sts KompassValue,r30
249
 278               	.L23:
250
 279 01be 1092 0000 		sts (cntKompass)+1,__zero_reg__
251
 280 01c2 1092 0000 		sts cntKompass,__zero_reg__
252
 281               	.L1:
253
 282               	/* epilogue: frame size=0 */
254
 283 01c6 FF91      		pop r31
255
 284 01c8 EF91      		pop r30
256
 285 01ca BF91      		pop r27
257
 286 01cc AF91      		pop r26
258
 287 01ce 9F91      		pop r25
259
 288 01d0 8F91      		pop r24
260
 289 01d2 7F91      		pop r23
261
 290 01d4 6F91      		pop r22
262
 291 01d6 5F91      		pop r21
263
 292 01d8 3F91      		pop r19
264
 293 01da 2F91      		pop r18
265
 294 01dc 0F90      		pop __tmp_reg__
266
 295 01de 0FBE      		out __SREG__,__tmp_reg__
267
 296 01e0 0F90      		pop __tmp_reg__
268
 297 01e2 1F90      		pop __zero_reg__
269
 298 01e4 1895      		reti
270
 299               	/* epilogue end (size=16) */
271
 300               	/* function __vector_18 size 247 (215) */
272
 302               	.global	SetDelay
273
 304               	SetDelay:
274
 305               	/* prologue: frame size=0 */
275
 306               	/* prologue end (size=0) */
276
 307 01e6 2091 0000 		lds r18,CountMilliseconds
277
 308 01ea 3091 0000 		lds r19,(CountMilliseconds)+1
278
 309 01ee 280F      		add r18,r24
279
 310 01f0 391F      		adc r19,r25
280
 311 01f2 C901      		movw r24,r18
281
 312 01f4 0196      		adiw r24,1
282
 313               	/* epilogue: frame size=0 */
283
 314 01f6 0895      		ret
284
 315               	/* epilogue end (size=1) */
285
 316               	/* function SetDelay size 9 (8) */
286
 318               	.global	CheckDelay
287
 320               	CheckDelay:
288
 321               	/* prologue: frame size=0 */
289
 322               	/* prologue end (size=0) */
290
 323 01f8 2091 0000 		lds r18,CountMilliseconds
291
 324 01fc 3091 0000 		lds r19,(CountMilliseconds)+1
292
 325 0200 821B      		sub r24,r18
293
 326 0202 930B      		sbc r25,r19
294
 327 0204 892F      		mov r24,r25
295
 328 0206 9927      		clr r25
296
 329 0208 8695      		lsr r24
297
 330 020a 8074      		andi r24,lo8(64)
298
 331 020c 9070      		andi r25,hi8(64)
299
 332               	/* epilogue: frame size=0 */
300
 333 020e 0895      		ret
301
 334               	/* epilogue end (size=1) */
302
 335               	/* function CheckDelay size 12 (11) */
303
 337               	.global	Delay_ms
304
 339               	Delay_ms:
305
 340               	/* prologue: frame size=0 */
306
 341 0210 CF93      		push r28
307
 342 0212 DF93      		push r29
308
 343               	/* prologue end (size=2) */
309
 344 0214 0E94 0000 		call SetDelay
310
 345 0218 EC01      		movw r28,r24
311
 346               	.L29:
312
 347 021a CE01      		movw r24,r28
313
 348 021c 0E94 0000 		call CheckDelay
314
 349 0220 8823      		tst r24
315
 350 0222 01F0      		breq .L29
316
 351               	/* epilogue: frame size=0 */
317
 352 0224 DF91      		pop r29
318
 353 0226 CF91      		pop r28
319
 354 0228 0895      		ret
320
 355               	/* epilogue end (size=3) */
321
 356               	/* function Delay_ms size 13 (8) */
322
 358               	.global	Delay_ms_Mess
323
 360               	Delay_ms_Mess:
324
 361               	/* prologue: frame size=0 */
325
 362 022a CF93      		push r28
326
 363 022c DF93      		push r29
327
 364               	/* prologue end (size=2) */
328
 365 022e 0E94 0000 		call SetDelay
329
 366 0232 EC01      		movw r28,r24
330
 367 0234 00C0      		rjmp .L40
331
 368               	.L36:
332
 369 0236 8091 0000 		lds r24,AdReady
333
 370 023a 8823      		tst r24
334
 371 023c 01F0      		breq .L40
335
 372 023e 9093 0000 		sts AdReady,r25
336
 373 0242 8FEC      		ldi r24,lo8(-49)
337
 374 0244 8093 7A00 		sts 122,r24
338
 375               	.L40:
339
 376 0248 CE01      		movw r24,r28
340
 377 024a 0E94 0000 		call CheckDelay
341
 378 024e 982F      		mov r25,r24
342
 379 0250 8823      		tst r24
343
 380 0252 01F0      		breq .L36
344
 381               	/* epilogue: frame size=0 */
345
 382 0254 DF91      		pop r29
346
 383 0256 CF91      		pop r28
347
 384 0258 0895      		ret
348
 385               	/* epilogue end (size=3) */
349
 386               	/* function Delay_ms_Mess size 24 (19) */
350
 388               	.global	TIMER2_Init
351
 390               	TIMER2_Init:
352
 391               	/* prologue: frame size=0 */
353
 392               	/* prologue end (size=0) */
354
 393 025a 9FB7      		in r25,95-0x20
355
 394               	/* #APP */
356
 395 025c F894      		cli
357
 396               	/* #NOAPP */
358
 397 025e 5F98      		cbi 43-0x20,7
359
 398 0260 3E9A      		sbi 39-0x20,6
360
 399 0262 469A      		sbi 40-0x20,6
361
 400 0264 8091 B000 		lds r24,176
362
 401 0268 8F70      		andi r24,lo8(15)
363
 402 026a 8093 B000 		sts 176,r24
364
 403 026e 8091 B000 		lds r24,176
365
 404 0272 8360      		ori r24,lo8(3)
366
 405 0274 8093 B000 		sts 176,r24
367
 406 0278 8091 B100 		lds r24,177
368
 407 027c 8B73      		andi r24,lo8(59)
369
 408 027e 8093 B100 		sts 177,r24
370
 409 0282 8091 B100 		lds r24,177
371
 410 0286 8B60      		ori r24,lo8(11)
372
 411 0288 8093 B100 		sts 177,r24
373
 412 028c 1092 B200 		sts 178,__zero_reg__
374
 413 0290 8FEF      		ldi r24,lo8(-1)
375
 414 0292 8093 B300 		sts 179,r24
376
 415 0296 8091 B000 		lds r24,176
377
 416 029a 8068      		ori r24,lo8(-128)
378
 417 029c 8093 B000 		sts 176,r24
379
 418 02a0 8091 7000 		lds r24,112
380
 419 02a4 8A7F      		andi r24,lo8(-6)
381
 420 02a6 8093 7000 		sts 112,r24
382
 421 02aa 8091 7000 		lds r24,112
383
 422 02ae 8260      		ori r24,lo8(2)
384
 423 02b0 8093 7000 		sts 112,r24
385
 424 02b4 9FBF      		out 95-0x20,r25
386
 425               	/* epilogue: frame size=0 */
387
 426 02b6 0895      		ret
388
 427               	/* epilogue end (size=1) */
389
 428               	/* function TIMER2_Init size 48 (47) */
390
 430               	.global	Timer_Init
391
 432               	Timer_Init:
392
 433               	/* prologue: frame size=0 */
393
 434               	/* prologue end (size=0) */
394
 435 02b8 8AE0      		ldi r24,lo8(10)
395
 436 02ba 90E0      		ldi r25,hi8(10)
396
 437 02bc 0E94 0000 		call SetDelay
397
 438 02c0 9093 0000 		sts (tim_main)+1,r25
398
 439 02c4 8093 0000 		sts tim_main,r24
399
 440 02c8 82E0      		ldi r24,lo8(2)
400
 441 02ca 85BD      		out 69-0x20,r24
401
 442 02cc 83EA      		ldi r24,lo8(-93)
402
 443 02ce 84BD      		out 68-0x20,r24
403
 444 02d0 17BC      		out 71-0x20,__zero_reg__
404
 445 02d2 84EB      		ldi r24,lo8(-76)
405
 446 02d4 88BD      		out 72-0x20,r24
406
 447 02d6 86E0      		ldi r24,lo8(6)
407
 448 02d8 86BD      		out 70-0x20,r24
408
 449 02da 8091 6E00 		lds r24,110
409
 450 02de 8160      		ori r24,lo8(1)
410
 451 02e0 8093 6E00 		sts 110,r24
411
 452               	/* epilogue: frame size=0 */
412
 453 02e4 0895      		ret
413
 454               	/* epilogue end (size=1) */
414
 455               	/* function Timer_Init size 23 (22) */
415
 457               	.global	CalculateServo
416
 459               	CalculateServo:
417
 460               	/* prologue: frame size=0 */
418
 461 02e6 A0E0      		ldi r26,lo8(0)
419
 462 02e8 B0E0      		ldi r27,hi8(0)
420
 463 02ea E0E0      		ldi r30,pm_lo8(1f)
421
 464 02ec F0E0      		ldi r31,pm_hi8(1f)
422
 465 02ee 0C94 0000 		jmp __prologue_saves__+22
423
 466               	1:
424
 467               	/* prologue end (size=6) */
425
 468 02f2 8091 0000 		lds r24,EE_Parameter+55
426
 469 02f6 E82F      		mov r30,r24
427
 470 02f8 FF27      		clr r31
428
 471 02fa E050      		subi r30,lo8(-(sintab))
429
 472 02fc F040      		sbci r31,hi8(-(sintab))
430
 473 02fe 9681      		ldd r25,Z+6
431
 474 0300 D080      		ld r13,Z
432
 475 0302 8091 0000 		lds r24,CalculateServoSignals
433
 476 0306 A92F      		mov r26,r25
434
 477 0308 BB27      		clr r27
435
 478 030a A7FD      		sbrc r26,7
436
 479 030c B095      		com r27
437
 480 030e CB2F      		mov r28,r27
438
 481 0310 DB2F      		mov r29,r27
439
 482 0312 8130      		cpi r24,lo8(1)
440
 483 0314 01F0      		breq .+2
441
 484 0316 00C0      		rjmp .L44
442
 485 0318 2091 0000 		lds r18,IntegralNick
443
 486 031c 3091 0000 		lds r19,(IntegralNick)+1
444
 487 0320 4091 0000 		lds r20,(IntegralNick)+2
445
 488 0324 5091 0000 		lds r21,(IntegralNick)+3
446
 489 0328 BD01      		movw r22,r26
447
 490 032a CE01      		movw r24,r28
448
 491 032c 0E94 0000 		call __mulsi3
449
 492 0330 97FF      		sbrs r25,7
450
 493 0332 00C0      		rjmp .L45
451
 494 0334 6158      		subi r22,lo8(-(127))
452
 495 0336 7F4F      		sbci r23,hi8(-(127))
453
 496 0338 8F4F      		sbci r24,hlo8(-(127))
454
 497 033a 9F4F      		sbci r25,hhi8(-(127))
455
 498               	.L45:
456
 499 033c 7B01      		movw r14,r22
457
 500 033e 8C01      		movw r16,r24
458
 501 0340 F7E0      		ldi r31,7
459
 502 0342 1595      	1:	asr r17
460
 503 0344 0795      		ror r16
461
 504 0346 F794      		ror r15
462
 505 0348 E794      		ror r14
463
 506 034a FA95      		dec r31
464
 507 034c 01F4      		brne 1b
465
 508 034e 8D2D      		mov r24,r13
466
 509 0350 9927      		clr r25
467
 510 0352 87FD      		sbrc r24,7
468
 511 0354 9095      		com r25
469
 512 0356 A92F      		mov r26,r25
470
 513 0358 B92F      		mov r27,r25
471
 514 035a 2091 0000 		lds r18,IntegralRoll
472
 515 035e 3091 0000 		lds r19,(IntegralRoll)+1
473
 516 0362 4091 0000 		lds r20,(IntegralRoll)+2
474
 517 0366 5091 0000 		lds r21,(IntegralRoll)+3
475
 518 036a BC01      		movw r22,r24
476
 519 036c CD01      		movw r24,r26
477
 520 036e 0E94 0000 		call __mulsi3
478
 521 0372 97FF      		sbrs r25,7
479
 522 0374 00C0      		rjmp .L46
480
 523 0376 6158      		subi r22,lo8(-(127))
481
 524 0378 7F4F      		sbci r23,hi8(-(127))
482
 525 037a 8F4F      		sbci r24,hlo8(-(127))
483
 526 037c 9F4F      		sbci r25,hhi8(-(127))
484
 527               	.L46:
485
 528 037e E7E0      		ldi r30,7
486
 529 0380 9595      	1:	asr r25
487
 530 0382 8795      		ror r24
488
 531 0384 7795      		ror r23
489
 532 0386 6795      		ror r22
490
 533 0388 EA95      		dec r30
491
 534 038a 01F4      		brne 1b
492
 535 038c F801      		movw r30,r16
493
 536 038e E701      		movw r28,r14
494
 537 0390 C61B      		sub r28,r22
495
 538 0392 D70B      		sbc r29,r23
496
 539 0394 E80B      		sbc r30,r24
497
 540 0396 F90B      		sbc r31,r25
498
 541 0398 2091 0000 		lds r18,POI_KameraNick
499
 542 039c 3091 0000 		lds r19,(POI_KameraNick)+1
500
 543 03a0 C901      		movw r24,r18
501
 544 03a2 53E0      		ldi r21,3
502
 545 03a4 880F      	1:	lsl r24
503
 546 03a6 991F      		rol r25
504
 547 03a8 5A95      		dec r21
505
 548 03aa 01F4      		brne 1b
506
 549 03ac 821B      		sub r24,r18
507
 550 03ae 930B      		sbc r25,r19
508
 551 03b0 AA27      		clr r26
509
 552 03b2 97FD      		sbrc r25,7
510
 553 03b4 A095      		com r26
511
 554 03b6 BA2F      		mov r27,r26
512
 555 03b8 C81B      		sub r28,r24
513
 556 03ba D90B      		sbc r29,r25
514
 557 03bc EA0B      		sbc r30,r26
515
 558 03be FB0B      		sbc r31,r27
516
 559 03c0 8091 0000 		lds r24,EE_Parameter+46
517
 560 03c4 9927      		clr r25
518
 561 03c6 AA27      		clr r26
519
 562 03c8 BB27      		clr r27
520
 563 03ca BC01      		movw r22,r24
521
 564 03cc CD01      		movw r24,r26
522
 565 03ce 9E01      		movw r18,r28
523
 566 03d0 AF01      		movw r20,r30
524
 567 03d2 0E94 0000 		call __mulsi3
525
 568 03d6 97FF      		sbrs r25,7
526
 569 03d8 00C0      		rjmp .L47
527
 570 03da 6150      		subi r22,lo8(-(511))
528
 571 03dc 7E4F      		sbci r23,hi8(-(511))
529
 572 03de 8F4F      		sbci r24,hlo8(-(511))
530
 573 03e0 9F4F      		sbci r25,hhi8(-(511))
531
 574               	.L47:
532
 575 03e2 FC01      		movw r30,r24
533
 576 03e4 EB01      		movw r28,r22
534
 577 03e6 49E0      		ldi r20,9
535
 578 03e8 F595      	1:	asr r31
536
 579 03ea E795      		ror r30
537
 580 03ec D795      		ror r29
538
 581 03ee C795      		ror r28
539
 582 03f0 4A95      		dec r20
540
 583 03f2 01F4      		brne 1b
541
 584 03f4 8091 0000 		lds r24,Parameter_ServoNickControl
542
 585 03f8 9927      		clr r25
543
 586 03fa 36E0      		ldi r19,6
544
 587 03fc 880F      	1:	lsl r24
545
 588 03fe 991F      		rol r25
546
 589 0400 3A95      		dec r19
547
 590 0402 01F4      		brne 1b
548
 591 0404 4091 0000 		lds r20,ServoNickOffset
549
 592 0408 5091 0000 		lds r21,(ServoNickOffset)+1
550
 593 040c 2091 0000 		lds r18,EE_Parameter+54
551
 594 0410 3327      		clr r19
552
 595 0412 841B      		sub r24,r20
553
 596 0414 950B      		sbc r25,r21
554
 597 0416 B901      		movw r22,r18
555
 598 0418 0E94 0000 		call __divmodhi4
556
 599 041c 8091 0000 		lds r24,ServoNickOffset
557
 600 0420 9091 0000 		lds r25,(ServoNickOffset)+1
558
 601 0424 860F      		add r24,r22
559
 602 0426 971F      		adc r25,r23
560
 603 0428 9093 0000 		sts (ServoNickOffset)+1,r25
561
 604 042c 8093 0000 		sts ServoNickOffset,r24
562
 605 0430 8091 0000 		lds r24,ServoNickOffset
563
 606 0434 9091 0000 		lds r25,(ServoNickOffset)+1
564
 607 0438 97FD      		sbrc r25,7
565
 608 043a 0F96      		adiw r24,15
566
 609               	.L48:
567
 610 043c 24E0      		ldi r18,4
568
 611 043e 9595      	1:	asr r25
569
 612 0440 8795      		ror r24
570
 613 0442 2A95      		dec r18
571
 614 0444 01F4      		brne 1b
572
 615 0446 9093 0000 		sts (ServoNickValue)+1,r25
573
 616 044a 8093 0000 		sts ServoNickValue,r24
574
 617 044e 8091 0000 		lds r24,EE_Parameter+105
575
 618 0452 80FF      		sbrs r24,0
576
 619 0454 00C0      		rjmp .L49
577
 620 0456 8091 0000 		lds r24,ServoNickValue
578
 621 045a 9091 0000 		lds r25,(ServoNickValue)+1
579
 622 045e 8C0F      		add r24,r28
580
 623 0460 9D1F      		adc r25,r29
581
 624 0462 00C0      		rjmp .L66
582
 625               	.L49:
583
 626 0464 8091 0000 		lds r24,ServoNickValue
584
 627 0468 9091 0000 		lds r25,(ServoNickValue)+1
585
 628 046c 8C1B      		sub r24,r28
586
 629 046e 9D0B      		sbc r25,r29
587
 630               	.L66:
588
 631 0470 9093 0000 		sts (ServoNickValue)+1,r25
589
 632 0474 8093 0000 		sts ServoNickValue,r24
590
 633 0478 8091 0000 		lds r24,EE_Parameter+47
591
 634 047c 282F      		mov r18,r24
592
 635 047e 3327      		clr r19
593
 636 0480 220F      		lsl r18
594
 637 0482 331F      		rol r19
595
 638 0484 220F      		lsl r18
596
 639 0486 331F      		rol r19
597
 640 0488 8091 0000 		lds r24,ServoNickValue
598
 641 048c 9091 0000 		lds r25,(ServoNickValue)+1
599
 642 0490 8217      		cp r24,r18
600
 643 0492 9307      		cpc r25,r19
601
 644 0494 04F0      		brlt .L67
602
 645 0496 8091 0000 		lds r24,EE_Parameter+48
603
 646 049a 282F      		mov r18,r24
604
 647 049c 3327      		clr r19
605
 648 049e 220F      		lsl r18
606
 649 04a0 331F      		rol r19
607
 650 04a2 220F      		lsl r18
608
 651 04a4 331F      		rol r19
609
 652 04a6 8091 0000 		lds r24,ServoNickValue
610
 653 04aa 9091 0000 		lds r25,(ServoNickValue)+1
611
 654 04ae 2817      		cp r18,r24
612
 655 04b0 3907      		cpc r19,r25
613
 656 04b2 04F4      		brge .L52
614
 657               	.L67:
615
 658 04b4 3093 0000 		sts (ServoNickValue)+1,r19
616
 659 04b8 2093 0000 		sts ServoNickValue,r18
617
 660               	.L52:
618
 661 04bc 8091 0000 		lds r24,PlatinenVersion
619
 662 04c0 8431      		cpi r24,lo8(20)
620
 663 04c2 00F4      		brsh .+2
621
 664 04c4 00C0      		rjmp .L64
622
 665 04c6 8091 0000 		lds r24,CalculateServoSignals
623
 666 04ca 8F5F      		subi r24,lo8(-(1))
624
 667 04cc 8093 0000 		sts CalculateServoSignals,r24
625
 668 04d0 00C0      		rjmp .L43
626
 669               	.L44:
627
 670 04d2 2091 0000 		lds r18,IntegralRoll
628
 671 04d6 3091 0000 		lds r19,(IntegralRoll)+1
629
 672 04da 4091 0000 		lds r20,(IntegralRoll)+2
630
 673 04de 5091 0000 		lds r21,(IntegralRoll)+3
631
 674 04e2 BD01      		movw r22,r26
632
 675 04e4 CE01      		movw r24,r28
633
 676 04e6 0E94 0000 		call __mulsi3
634
 677 04ea 97FF      		sbrs r25,7
635
 678 04ec 00C0      		rjmp .L57
636
 679 04ee 6158      		subi r22,lo8(-(127))
637
 680 04f0 7F4F      		sbci r23,hi8(-(127))
638
 681 04f2 8F4F      		sbci r24,hlo8(-(127))
639
 682 04f4 9F4F      		sbci r25,hhi8(-(127))
640
 683               	.L57:
641
 684 04f6 7B01      		movw r14,r22
642
 685 04f8 8C01      		movw r16,r24
643
 686 04fa C7E0      		ldi r28,7
644
 687 04fc 1595      	1:	asr r17
645
 688 04fe 0795      		ror r16
646
 689 0500 F794      		ror r15
647
 690 0502 E794      		ror r14
648
 691 0504 CA95      		dec r28
649
 692 0506 01F4      		brne 1b
650
 693 0508 8D2D      		mov r24,r13
651
 694 050a 9927      		clr r25
652
 695 050c 87FD      		sbrc r24,7
653
 696 050e 9095      		com r25
654
 697 0510 A92F      		mov r26,r25
655
 698 0512 B92F      		mov r27,r25
656
 699 0514 2091 0000 		lds r18,IntegralNick
657
 700 0518 3091 0000 		lds r19,(IntegralNick)+1
658
 701 051c 4091 0000 		lds r20,(IntegralNick)+2
659
 702 0520 5091 0000 		lds r21,(IntegralNick)+3
660
 703 0524 BC01      		movw r22,r24
661
 704 0526 CD01      		movw r24,r26
662
 705 0528 0E94 0000 		call __mulsi3
663
 706 052c 9B01      		movw r18,r22
664
 707 052e AC01      		movw r20,r24
665
 708 0530 97FF      		sbrs r25,7
666
 709 0532 00C0      		rjmp .L58
667
 710 0534 2158      		subi r18,lo8(-(127))
668
 711 0536 3F4F      		sbci r19,hi8(-(127))
669
 712 0538 4F4F      		sbci r20,hlo8(-(127))
670
 713 053a 5F4F      		sbci r21,hhi8(-(127))
671
 714               	.L58:
672
 715 053c B7E0      		ldi r27,7
673
 716 053e 5595      	1:	asr r21
674
 717 0540 4795      		ror r20
675
 718 0542 3795      		ror r19
676
 719 0544 2795      		ror r18
677
 720 0546 BA95      		dec r27
678
 721 0548 01F4      		brne 1b
679
 722 054a 2E0D      		add r18,r14
680
 723 054c 3F1D      		adc r19,r15
681
 724 054e 401F      		adc r20,r16
682
 725 0550 511F      		adc r21,r17
683
 726 0552 8091 0000 		lds r24,EE_Parameter+50
684
 727 0556 9927      		clr r25
685
 728 0558 AA27      		clr r26
686
 729 055a BB27      		clr r27
687
 730 055c BC01      		movw r22,r24
688
 731 055e CD01      		movw r24,r26
689
 732 0560 0E94 0000 		call __mulsi3
690
 733 0564 97FF      		sbrs r25,7
691
 734 0566 00C0      		rjmp .L59
692
 735 0568 6150      		subi r22,lo8(-(511))
693
 736 056a 7E4F      		sbci r23,hi8(-(511))
694
 737 056c 8F4F      		sbci r24,hlo8(-(511))
695
 738 056e 9F4F      		sbci r25,hhi8(-(511))
696
 739               	.L59:
697
 740 0570 FC01      		movw r30,r24
698
 741 0572 EB01      		movw r28,r22
699
 742 0574 A9E0      		ldi r26,9
700
 743 0576 F595      	1:	asr r31
701
 744 0578 E795      		ror r30
702
 745 057a D795      		ror r29
703
 746 057c C795      		ror r28
704
 747 057e AA95      		dec r26
705
 748 0580 01F4      		brne 1b
706
 749 0582 8091 0000 		lds r24,Parameter_ServoRollControl
707
 750 0586 9927      		clr r25
708
 751 0588 76E0      		ldi r23,6
709
 752 058a 880F      	1:	lsl r24
710
 753 058c 991F      		rol r25
711
 754 058e 7A95      		dec r23
712
 755 0590 01F4      		brne 1b
713
 756 0592 4091 0000 		lds r20,ServoRollOffset
714
 757 0596 5091 0000 		lds r21,(ServoRollOffset)+1
715
 758 059a 2091 0000 		lds r18,EE_Parameter+54
716
 759 059e 3327      		clr r19
717
 760 05a0 841B      		sub r24,r20
718
 761 05a2 950B      		sbc r25,r21
719
 762 05a4 B901      		movw r22,r18
720
 763 05a6 0E94 0000 		call __divmodhi4
721
 764 05aa 8091 0000 		lds r24,ServoRollOffset
722
 765 05ae 9091 0000 		lds r25,(ServoRollOffset)+1
723
 766 05b2 860F      		add r24,r22
724
 767 05b4 971F      		adc r25,r23
725
 768 05b6 9093 0000 		sts (ServoRollOffset)+1,r25
726
 769 05ba 8093 0000 		sts ServoRollOffset,r24
727
 770 05be 8091 0000 		lds r24,ServoRollOffset
728
 771 05c2 9091 0000 		lds r25,(ServoRollOffset)+1
729
 772 05c6 97FD      		sbrc r25,7
730
 773 05c8 0F96      		adiw r24,15
731
 774               	.L60:
732
 775 05ca 64E0      		ldi r22,4
733
 776 05cc 9595      	1:	asr r25
734
 777 05ce 8795      		ror r24
735
 778 05d0 6A95      		dec r22
736
 779 05d2 01F4      		brne 1b
737
 780 05d4 9093 0000 		sts (ServoRollValue)+1,r25
738
 781 05d8 8093 0000 		sts ServoRollValue,r24
739
 782 05dc 8091 0000 		lds r24,EE_Parameter+105
740
 783 05e0 81FF      		sbrs r24,1
741
 784 05e2 00C0      		rjmp .L61
742
 785 05e4 8091 0000 		lds r24,ServoRollValue
743
 786 05e8 9091 0000 		lds r25,(ServoRollValue)+1
744
 787 05ec 8C0F      		add r24,r28
745
 788 05ee 9D1F      		adc r25,r29
746
 789 05f0 00C0      		rjmp .L68
747
 790               	.L61:
748
 791 05f2 8091 0000 		lds r24,ServoRollValue
749
 792 05f6 9091 0000 		lds r25,(ServoRollValue)+1
750
 793 05fa 8C1B      		sub r24,r28
751
 794 05fc 9D0B      		sbc r25,r29
752
 795               	.L68:
753
 796 05fe 9093 0000 		sts (ServoRollValue)+1,r25
754
 797 0602 8093 0000 		sts ServoRollValue,r24
755
 798 0606 8091 0000 		lds r24,EE_Parameter+51
756
 799 060a 282F      		mov r18,r24
757
 800 060c 3327      		clr r19
758
 801 060e 220F      		lsl r18
759
 802 0610 331F      		rol r19
760
 803 0612 220F      		lsl r18
761
 804 0614 331F      		rol r19
762
 805 0616 8091 0000 		lds r24,ServoRollValue
763
 806 061a 9091 0000 		lds r25,(ServoRollValue)+1
764
 807 061e 8217      		cp r24,r18
765
 808 0620 9307      		cpc r25,r19
766
 809 0622 04F0      		brlt .L69
767
 810 0624 8091 0000 		lds r24,EE_Parameter+52
768
 811 0628 282F      		mov r18,r24
769
 812 062a 3327      		clr r19
770
 813 062c 220F      		lsl r18
771
 814 062e 331F      		rol r19
772
 815 0630 220F      		lsl r18
773
 816 0632 331F      		rol r19
774
 817 0634 8091 0000 		lds r24,ServoRollValue
775
 818 0638 9091 0000 		lds r25,(ServoRollValue)+1
776
 819 063c 2817      		cp r18,r24
777
 820 063e 3907      		cpc r19,r25
778
 821 0640 04F4      		brge .L64
779
 822               	.L69:
780
 823 0642 3093 0000 		sts (ServoRollValue)+1,r19
781
 824 0646 2093 0000 		sts ServoRollValue,r18
782
 825               	.L64:
783
 826 064a 1092 0000 		sts CalculateServoSignals,__zero_reg__
784
 827               	.L43:
785
 828               	/* epilogue: frame size=0 */
786
 829 064e E7E0      		ldi r30,7
787
 830 0650 CDB7      		in r28,__SP_L__
788
 831 0652 DEB7      		in r29,__SP_H__
789
 832 0654 0C94 0000 		jmp __epilogue_restores__+22
790
 833               	/* epilogue end (size=5) */
791
 834               	/* function CalculateServo size 443 (432) */
792
 836               		.lcomm PulseOutput.0,1
793
 837               		.lcomm ServoFrameTime.1,2
794
 838               		.lcomm ServoIndex.2,1
795
 839               	.global	__vector_9
796
 841               	__vector_9:
797
 842               	/* prologue: frame size=0 */
798
 843 0658 1F92      		push __zero_reg__
799
 844 065a 0F92      		push __tmp_reg__
800
 845 065c 0FB6      		in __tmp_reg__,__SREG__
801
 846 065e 0F92      		push __tmp_reg__
802
 847 0660 1124      		clr __zero_reg__
803
 848 0662 2F93      		push r18
804
 849 0664 3F93      		push r19
805
 850 0666 4F93      		push r20
806
 851 0668 5F93      		push r21
807
 852 066a 8F93      		push r24
808
 853 066c 9F93      		push r25
809
 854 066e EF93      		push r30
810
 855 0670 FF93      		push r31
811
 856               	/* prologue end (size=13) */
812
 857 0672 8091 0000 		lds r24,PlatinenVersion
813
 858 0676 9091 0000 		lds r25,PulseOutput.0
814
 859 067a 8431      		cpi r24,lo8(20)
815
 860 067c 00F0      		brlo .+2
816
 861 067e 00C0      		rjmp .L71
817
 862 0680 9923      		tst r25
818
 863 0682 01F0      		breq .+2
819
 864 0684 00C0      		rjmp .L78
820
 865 0686 8091 B000 		lds r24,176
821
 866 068a 86FF      		sbrs r24,6
822
 867 068c 00C0      		rjmp .L73
823
 868 068e 8091 B000 		lds r24,176
824
 869 0692 8F7B      		andi r24,lo8(-65)
825
 870 0694 8093 B000 		sts 176,r24
826
 871 0698 8091 0000 		lds r24,ServoNickValue
827
 872 069c 9091 0000 		lds r25,(ServoNickValue)+1
828
 873 06a0 8755      		subi r24,lo8(-(425))
829
 874 06a2 9E4F      		sbci r25,hi8(-(425))
830
 875 06a4 9093 0000 		sts (RemainingPulse)+1,r25
831
 876 06a8 8093 0000 		sts RemainingPulse,r24
832
 877 06ac 25E0      		ldi r18,hi8(1501)
833
 878 06ae 8D3D      		cpi r24,lo8(1501)
834
 879 06b0 9207      		cpc r25,r18
835
 880 06b2 00F0      		brlo .L74
836
 881 06b4 8CED      		ldi r24,lo8(1500)
837
 882 06b6 95E0      		ldi r25,hi8(1500)
838
 883 06b8 00C0      		rjmp .L106
839
 884               	.L74:
840
 885 06ba 8757      		subi r24,lo8(375)
841
 886 06bc 9140      		sbci r25,hi8(375)
842
 887 06be 00F4      		brsh .L75
843
 888 06c0 87E7      		ldi r24,lo8(375)
844
 889 06c2 91E0      		ldi r25,hi8(375)
845
 890               	.L106:
846
 891 06c4 9093 0000 		sts (RemainingPulse)+1,r25
847
 892 06c8 8093 0000 		sts RemainingPulse,r24
848
 893               	.L75:
849
 894 06cc 8091 0000 		lds r24,RemainingPulse
850
 895 06d0 9091 0000 		lds r25,(RemainingPulse)+1
851
 896 06d4 00C0      		rjmp .L111
852
 897               	.L73:
853
 898 06d6 8091 B000 		lds r24,176
854
 899 06da 8064      		ori r24,lo8(64)
855
 900 06dc 8093 B000 		sts 176,r24
856
 901 06e0 8091 0000 		lds r24,EE_Parameter+53
857
 902 06e4 282F      		mov r18,r24
858
 903 06e6 3327      		clr r19
859
 904 06e8 8DED      		ldi r24,lo8(1757)
860
 905 06ea 96E0      		ldi r25,hi8(1757)
861
 906 06ec 289F      		mul r18,r24
862
 907 06ee A001      		movw r20,r0
863
 908 06f0 299F      		mul r18,r25
864
 909 06f2 500D      		add r21,r0
865
 910 06f4 389F      		mul r19,r24
866
 911 06f6 500D      		add r21,r0
867
 912 06f8 1124      		clr r1
868
 913 06fa CA01      		movw r24,r20
869
 914 06fc 2091 0000 		lds r18,ServoFrameTime.1
870
 915 0700 3091 0000 		lds r19,(ServoFrameTime.1)+1
871
 916 0704 821B      		sub r24,r18
872
 917 0706 930B      		sbc r25,r19
873
 918 0708 9093 0000 		sts (RemainingPulse)+1,r25
874
 919 070c 8093 0000 		sts RemainingPulse,r24
875
 920 0710 81E0      		ldi r24,lo8(1)
876
 921 0712 8093 0000 		sts CalculateServoSignals,r24
877
 922 0716 00C0      		rjmp .L94
878
 923               	.L71:
879
 924 0718 9923      		tst r25
880
 925 071a 01F0      		breq .+2
881
 926 071c 00C0      		rjmp .L78
882
 927 071e 8091 B000 		lds r24,176
883
 928 0722 86FF      		sbrs r24,6
884
 929 0724 00C0      		rjmp .L80
885
 930 0726 8091 B000 		lds r24,176
886
 931 072a 8F7B      		andi r24,lo8(-65)
887
 932 072c 8093 B000 		sts 176,r24
888
 933 0730 E091 0000 		lds r30,ServoIndex.2
889
 934 0734 EE23      		tst r30
890
 935 0736 01F4      		brne .L81
891
 936 0738 8091 0000 		lds r24,EE_Parameter+53
892
 937 073c 282F      		mov r18,r24
893
 938 073e 3327      		clr r19
894
 939 0740 8DED      		ldi r24,lo8(1757)
895
 940 0742 96E0      		ldi r25,hi8(1757)
896
 941 0744 289F      		mul r18,r24
897
 942 0746 A001      		movw r20,r0
898
 943 0748 299F      		mul r18,r25
899
 944 074a 500D      		add r21,r0
900
 945 074c 389F      		mul r19,r24
901
 946 074e 500D      		add r21,r0
902
 947 0750 1124      		clr r1
903
 948 0752 CA01      		movw r24,r20
904
 949 0754 2091 0000 		lds r18,ServoFrameTime.1
905
 950 0758 3091 0000 		lds r19,(ServoFrameTime.1)+1
906
 951 075c 821B      		sub r24,r18
907
 952 075e 930B      		sbc r25,r19
908
 953 0760 9093 0000 		sts (RemainingPulse)+1,r25
909
 954 0764 8093 0000 		sts RemainingPulse,r24
910
 955 0768 1092 0000 		sts (ServoFrameTime.1)+1,__zero_reg__
911
 956 076c 1092 0000 		sts ServoFrameTime.1,__zero_reg__
912
 957 0770 469A      		sbi 40-0x20,6
913
 958 0772 00C0      		rjmp .L94
914
 959               	.L81:
915
 960 0774 89EA      		ldi r24,lo8(937)
916
 961 0776 93E0      		ldi r25,hi8(937)
917
 962 0778 9093 0000 		sts (RemainingPulse)+1,r25
918
 963 077c 8093 0000 		sts RemainingPulse,r24
919
 964 0780 8E2F      		mov r24,r30
920
 965 0782 9927      		clr r25
921
 966 0784 8330      		cpi r24,3
922
 967 0786 9105      		cpc r25,__zero_reg__
923
 968 0788 01F0      		breq .L86
924
 969 078a 8430      		cpi r24,4
925
 970 078c 9105      		cpc r25,__zero_reg__
926
 971 078e 04F4      		brge .L90
927
 972 0790 8130      		cpi r24,1
928
 973 0792 9105      		cpc r25,__zero_reg__
929
 974 0794 01F0      		breq .L84
930
 975 0796 0297      		sbiw r24,2
931
 976 0798 01F0      		breq .L85
932
 977 079a 00C0      		rjmp .L89
933
 978               	.L90:
934
 979 079c 8430      		cpi r24,4
935
 980 079e 9105      		cpc r25,__zero_reg__
936
 981 07a0 01F0      		breq .L87
937
 982 07a2 0597      		sbiw r24,5
938
 983 07a4 01F0      		breq .L88
939
 984 07a6 00C0      		rjmp .L89
940
 985               	.L84:
941
 986 07a8 8091 0000 		lds r24,ServoNickValue
942
 987 07ac 9091 0000 		lds r25,(ServoNickValue)+1
943
 988 07b0 00C0      		rjmp .L110
944
 989               	.L85:
945
 990 07b2 8091 0000 		lds r24,ServoRollValue
946
 991 07b6 9091 0000 		lds r25,(ServoRollValue)+1
947
 992               	.L110:
948
 993 07ba 8755      		subi r24,lo8(-(425))
949
 994 07bc 9E4F      		sbci r25,hi8(-(425))
950
 995 07be 00C0      		rjmp .L107
951
 996               	.L86:
952
 997 07c0 8091 0000 		lds r24,Parameter_Servo3
953
 998 07c4 00C0      		rjmp .L112
954
 999               	.L87:
955
 1000 07c6 8091 0000 		lds r24,Parameter_Servo4
956
 1001 07ca 00C0      		rjmp .L112
957
 1002               	.L88:
958
 1003 07cc 8091 0000 		lds r24,Parameter_Servo5
959
 1004               	.L112:
960
 1005 07d0 9927      		clr r25
961
 1006 07d2 880F      		lsl r24
962
 1007 07d4 991F      		rol r25
963
 1008 07d6 880F      		lsl r24
964
 1009 07d8 991F      		rol r25
965
 1010 07da 00C0      		rjmp .L110
966
 1011               	.L89:
967
 1012 07dc FF27      		clr r31
968
 1013 07de EE0F      		add r30,r30
969
 1014 07e0 FF1F      		adc r31,r31
970
 1015 07e2 E050      		subi r30,lo8(-(PPM_in))
971
 1016 07e4 F040      		sbci r31,hi8(-(PPM_in))
972
 1017 07e6 2081      		ld r18,Z
973
 1018 07e8 3181      		ldd r19,Z+1
974
 1019 07ea 220F      		add r18,r18
975
 1020 07ec 331F      		adc r19,r19
976
 1021 07ee 8091 0000 		lds r24,RemainingPulse
977
 1022 07f2 9091 0000 		lds r25,(RemainingPulse)+1
978
 1023 07f6 820F      		add r24,r18
979
 1024 07f8 931F      		adc r25,r19
980
 1025               	.L107:
981
 1026 07fa 9093 0000 		sts (RemainingPulse)+1,r25
982
 1027 07fe 8093 0000 		sts RemainingPulse,r24
983
 1028 0802 8091 0000 		lds r24,RemainingPulse
984
 1029 0806 9091 0000 		lds r25,(RemainingPulse)+1
985
 1030 080a 55E0      		ldi r21,hi8(1501)
986
 1031 080c 8D3D      		cpi r24,lo8(1501)
987
 1032 080e 9507      		cpc r25,r21
988
 1033 0810 00F0      		brlo .L91
989
 1034 0812 8CED      		ldi r24,lo8(1500)
990
 1035 0814 95E0      		ldi r25,hi8(1500)
991
 1036 0816 00C0      		rjmp .L108
992
 1037               	.L91:
993
 1038 0818 8757      		subi r24,lo8(375)
994
 1039 081a 9140      		sbci r25,hi8(375)
995
 1040 081c 00F4      		brsh .L92
996
 1041 081e 87E7      		ldi r24,lo8(375)
997
 1042 0820 91E0      		ldi r25,hi8(375)
998
 1043               	.L108:
999
 1044 0822 9093 0000 		sts (RemainingPulse)+1,r25
1000
 1045 0826 8093 0000 		sts RemainingPulse,r24
1001
 1046               	.L92:
1002
 1047 082a 2091 0000 		lds r18,RemainingPulse
1003
 1048 082e 3091 0000 		lds r19,(RemainingPulse)+1
1004
 1049 0832 2C5B      		subi r18,lo8(-(-188))
1005
 1050 0834 3040      		sbci r19,hi8(-(-188))
1006
 1051 0836 3093 0000 		sts (RemainingPulse)+1,r19
1007
 1052 083a 2093 0000 		sts RemainingPulse,r18
1008
 1053 083e 8091 0000 		lds r24,ServoFrameTime.1
1009
 1054 0842 9091 0000 		lds r25,(ServoFrameTime.1)+1
1010
 1055 0846 820F      		add r24,r18
1011
 1056 0848 931F      		adc r25,r19
1012
 1057               	.L111:
1013
 1058 084a 9093 0000 		sts (ServoFrameTime.1)+1,r25
1014
 1059 084e 8093 0000 		sts ServoFrameTime.1,r24
1015
 1060 0852 00C0      		rjmp .L94
1016
 1061               	.L80:
1017
 1062 0854 8091 B000 		lds r24,176
1018
 1063 0858 8064      		ori r24,lo8(64)
1019
 1064 085a 8093 B000 		sts 176,r24
1020
 1065 085e 8CEB      		ldi r24,lo8(188)
1021
 1066 0860 90E0      		ldi r25,hi8(188)
1022
 1067 0862 9093 0000 		sts (RemainingPulse)+1,r25
1023
 1068 0866 8093 0000 		sts RemainingPulse,r24
1024
 1069 086a 8091 0000 		lds r24,ServoFrameTime.1
1025
 1070 086e 9091 0000 		lds r25,(ServoFrameTime.1)+1
1026
 1071 0872 8454      		subi r24,lo8(-(188))
1027
 1072 0874 9F4F      		sbci r25,hi8(-(188))
1028
 1073 0876 9093 0000 		sts (ServoFrameTime.1)+1,r25
1029
 1074 087a 8093 0000 		sts ServoFrameTime.1,r24
1030
 1075 087e 8091 0000 		lds r24,ServoActive
1031
 1076 0882 8823      		tst r24
1032
 1077 0884 01F0      		breq .L97
1033
 1078 0886 8091 0000 		lds r24,SenderOkay
1034
 1079 088a 8823      		tst r24
1035
 1080 088c 01F4      		brne .L96
1036
 1081               	.L97:
1037
 1082 088e 8091 0000 		lds r24,ServoActive
1038
 1083 0892 8230      		cpi r24,lo8(2)
1039
 1084 0894 01F4      		brne .L95
1040
 1085               	.L96:
1041
 1086 0896 4698      		cbi 40-0x20,6
1042
 1087 0898 00C0      		rjmp .L98
1043
 1088               	.L95:
1044
 1089 089a 469A      		sbi 40-0x20,6
1045
 1090               	.L98:
1046
 1091 089c 8091 0000 		lds r24,ServoIndex.2
1047
 1092 08a0 8F5F      		subi r24,lo8(-(1))
1048
 1093 08a2 8093 0000 		sts ServoIndex.2,r24
1049
 1094 08a6 9091 0000 		lds r25,EE_Parameter+53
1050
 1095 08aa 9817      		cp r25,r24
1051
 1096 08ac 00F4      		brsh .L94
1052
 1097 08ae 81E0      		ldi r24,lo8(1)
1053
 1098 08b0 8093 0000 		sts CalculateServoSignals,r24
1054
 1099 08b4 1092 0000 		sts ServoIndex.2,__zero_reg__
1055
 1100               	.L94:
1056
 1101 08b8 81E0      		ldi r24,lo8(1)
1057
 1102 08ba 8093 0000 		sts PulseOutput.0,r24
1058
 1103               	.L78:
1059
 1104 08be 2091 0000 		lds r18,RemainingPulse
1060
 1105 08c2 3091 0000 		lds r19,(RemainingPulse)+1
1061
 1106 08c6 41E0      		ldi r20,hi8(383)
1062
 1107 08c8 2F37      		cpi r18,lo8(383)
1063
 1108 08ca 3407      		cpc r19,r20
1064
 1109 08cc 00F0      		brlo .L100
1065
 1110 08ce 8FEF      		ldi r24,lo8(-1)
1066
 1111 08d0 8093 B300 		sts 179,r24
1067
 1112 08d4 2F5F      		subi r18,lo8(-(-255))
1068
 1113 08d6 3040      		sbci r19,hi8(-(-255))
1069
 1114 08d8 00C0      		rjmp .L109
1070
 1115               	.L100:
1071
 1116 08da 2F3F      		cpi r18,255
1072
 1117 08dc 3105      		cpc r19,__zero_reg__
1073
 1118 08de 01F0      		breq .L102
1074
 1119 08e0 00F0      		brlo .L102
1075
 1120 08e2 A901      		movw r20,r18
1076
 1121 08e4 4F5F      		subi r20,lo8(-(-255))
1077
 1122 08e6 5040      		sbci r21,hi8(-(-255))
1078
 1123 08e8 4F37      		cpi r20,127
1079
 1124 08ea 5105      		cpc r21,__zero_reg__
1080
 1125 08ec 00F4      		brsh .L103
1081
 1126 08ee 80E8      		ldi r24,lo8(-128)
1082
 1127 08f0 8093 B300 		sts 179,r24
1083
 1128 08f4 2058      		subi r18,lo8(-(-128))
1084
 1129 08f6 3040      		sbci r19,hi8(-(-128))
1085
 1130               	.L109:
1086
 1131 08f8 3093 0000 		sts (RemainingPulse)+1,r19
1087
 1132 08fc 2093 0000 		sts RemainingPulse,r18
1088
 1133 0900 00C0      		rjmp .L70
1089
 1134               	.L103:
1090
 1135 0902 8FEF      		ldi r24,lo8(-1)
1091
 1136 0904 8093 B300 		sts 179,r24
1092
 1137 0908 5093 0000 		sts (RemainingPulse)+1,r21
1093
 1138 090c 4093 0000 		sts RemainingPulse,r20
1094
 1139 0910 00C0      		rjmp .L70
1095
 1140               	.L102:
1096
 1141 0912 8091 0000 		lds r24,RemainingPulse
1097
 1142 0916 8093 B300 		sts 179,r24
1098
 1143 091a 1092 0000 		sts (RemainingPulse)+1,__zero_reg__
1099
 1144 091e 1092 0000 		sts RemainingPulse,__zero_reg__
1100
 1145 0922 1092 0000 		sts PulseOutput.0,__zero_reg__
1101
 1146               	.L70:
1102
 1147               	/* epilogue: frame size=0 */
1103
 1148 0926 FF91      		pop r31
1104
 1149 0928 EF91      		pop r30
1105
 1150 092a 9F91      		pop r25
1106
 1151 092c 8F91      		pop r24
1107
 1152 092e 5F91      		pop r21
1108
 1153 0930 4F91      		pop r20
1109
 1154 0932 3F91      		pop r19
1110
 1155 0934 2F91      		pop r18
1111
 1156 0936 0F90      		pop __tmp_reg__
1112
 1157 0938 0FBE      		out __SREG__,__tmp_reg__
1113
 1158 093a 0F90      		pop __tmp_reg__
1114
 1159 093c 1F90      		pop __zero_reg__
1115
 1160 093e 1895      		reti
1116
 1161               	/* epilogue end (size=13) */
1117
 1162               	/* function __vector_9 size 376 (350) */
1118
 1164               		.comm Motorsmax,8,1
1119
 1165               		.comm MotorsTmax,2,1
1120
 1166               		.lcomm tim_main,2
1121
 1167               	/* File "timer0.c": code 1195 = 0x04ab (1112), prologues  39, epilogues  44 */
1122
DEFINED SYMBOLS
1123
                            *ABS*:00000000 timer0.c
1124
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:3      *ABS*:0000003f __SREG__
1125
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:4      *ABS*:0000003e __SP_H__
1126
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:5      *ABS*:0000003d __SP_L__
1127
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:6      *ABS*:00000000 __tmp_reg__
1128
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:7      *ABS*:00000001 __zero_reg__
1129
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:15     .bss:00000000 ServoRollValue
1130
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:21     .bss:00000002 ServoNickValue
1131
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:27     .data:00000000 BeepMuster
1132
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:32     .data:00000002 ServoRollOffset
1133
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:37     .data:00000004 ServoNickOffset
1134
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:44     .bss:00000004 RemainingPulse
1135
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:50     .data:00000006 CalculateServoSignals
1136
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:57     .bss:00000006 ServoActive
1137
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:63     .bss:00000007 SendSPI
1138
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:69     .bss:00000008 beeptime
1139
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:75     .bss:0000000a cntKompass
1140
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:81     .bss:0000000c UpdateMotor
1141
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:87     .bss:0000000d CountMilliseconds
1142
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:92     .data:00000007 cnt_1ms.3
1143
                             .bss:0000000f cnt.4
1144
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:94     .bss:00000010 compass_active.5
1145
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:99     .text:00000000 __vector_18
1146
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:304    .text:000001e6 SetDelay
1147
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:320    .text:000001f8 CheckDelay
1148
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:339    .text:00000210 Delay_ms
1149
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:360    .text:0000022a Delay_ms_Mess
1150
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:390    .text:0000025a TIMER2_Init
1151
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:432    .text:000002b8 Timer_Init
1152
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:838    .bss:00000015 tim_main
1153
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:459    .text:000002e6 CalculateServo
1154
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:95     .bss:00000011 PulseOutput.0
1155
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:836    .bss:00000012 ServoFrameTime.1
1156
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:837    .bss:00000014 ServoIndex.2
1157
C:\Users\Thomas\AppData\Local\Temp/cc4Xj7Xa.s:841    .text:00000658 __vector_9
1158
                            *COM*:00000008 Motorsmax
1159
                            *COM*:00000002 MotorsTmax
1160
 
1161
UNDEFINED SYMBOLS
1162
__do_copy_data
1163
__do_clear_bss
1164
SpektrumTimer
1165
PlatinenVersion
1166
NaviDataOkay
1167
Parameter_GlobalConfig
1168
__udivmodhi4
1169
KompassValue
1170
AdReady
1171
__prologue_saves__
1172
EE_Parameter
1173
sintab
1174
IntegralNick
1175
__mulsi3
1176
IntegralRoll
1177
POI_KameraNick
1178
Parameter_ServoNickControl
1179
__divmodhi4
1180
Parameter_ServoRollControl
1181
__epilogue_restores__
1182
Parameter_Servo3
1183
Parameter_Servo4
1184
Parameter_Servo5
1185
PPM_in
1186
SenderOkay