Subversion Repositories Projects

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
911 - 1
   1               		.file	"timer0.c"
2
   2               	__SREG__ = 0x3f
3
   3               	__SP_H__ = 0x3e
4
   4               	__SP_L__ = 0x3d
5
   5               	__tmp_reg__ = 0
6
   6               	__zero_reg__ = 1
7
   7               		.global __do_copy_data
8
   8               		.global __do_clear_bss
9
   9               		.text
10
  10               	.global	__vector_18
11
  12               	__vector_18:
12
  13               	/* prologue: frame size=0 */
13
  14 0000 1F92      		push __zero_reg__
14
  15 0002 0F92      		push __tmp_reg__
15
  16 0004 0FB6      		in __tmp_reg__,__SREG__
16
  17 0006 0F92      		push __tmp_reg__
17
  18 0008 1124      		clr __zero_reg__
18
  19 000a 2F93      		push r18
19
  20 000c 3F93      		push r19
20
  21 000e 5F93      		push r21
21
  22 0010 6F93      		push r22
22
  23 0012 7F93      		push r23
23
  24 0014 8F93      		push r24
24
  25 0016 9F93      		push r25
25
  26 0018 AF93      		push r26
26
  27 001a BF93      		push r27
27
  28               	/* prologue end (size=14) */
28
  29 001c 8091 0000 		lds r24,SendSPI
29
  30 0020 8823      		tst r24
30
  31 0022 01F0      		breq .L2
31
  32 0024 8091 0000 		lds r24,SendSPI
32
  33 0028 8150      		subi r24,lo8(-(-1))
33
  34 002a 8093 0000 		sts SendSPI,r24
34
  35               	.L2:
35
  36 002e 8091 0000 		lds r24,SpektrumTimer
36
  37 0032 8823      		tst r24
37
  38 0034 01F0      		breq .L4
38
  39 0036 8150      		subi r24,lo8(-(-1))
39
  40 0038 8093 0000 		sts SpektrumTimer,r24
40
  41               	.L4:
41
  42 003c 8091 0000 		lds r24,cnt.2508
42
  43 0040 8150      		subi r24,lo8(-(-1))
43
  44 0042 8093 0000 		sts cnt.2508,r24
44
  45 0046 8F3F      		cpi r24,lo8(-1)
45
  46 0048 01F0      		breq .+2
46
  47 004a 00C0      		rjmp .L6
47
  48 004c 89E0      		ldi r24,lo8(9)
48
  49 004e 8093 0000 		sts cnt.2508,r24
49
  50 0052 8091 0000 		lds r24,CountMilliseconds
50
  51 0056 9091 0000 		lds r25,(CountMilliseconds)+1
51
  52 005a 0196      		adiw r24,1
52
  53 005c 9093 0000 		sts (CountMilliseconds)+1,r25
53
  54 0060 8093 0000 		sts CountMilliseconds,r24
54
  55 0064 8091 0000 		lds r24,cnt_1ms.2507
55
  56 0068 8F5F      		subi r24,lo8(-(1))
56
  57 006a 8170      		andi r24,lo8(1)
57
  58 006c 8093 0000 		sts cnt_1ms.2507,r24
58
  59 0070 8823      		tst r24
59
  60 0072 01F4      		brne .L8
60
  61 0074 81E0      		ldi r24,lo8(1)
61
  62 0076 8093 0000 		sts UpdateMotor,r24
62
  63               	.L8:
63
  64 007a 3499      		sbic 38-0x20,4
64
  65 007c 00C0      		rjmp .L10
65
  66 007e 81E0      		ldi r24,lo8(1)
66
  67 0080 8093 0000 		sts compass_active.2509,r24
67
  68               	.L10:
68
  69 0084 8091 0000 		lds r24,beeptime
69
  70 0088 9091 0000 		lds r25,(beeptime)+1
70
  71 008c 892B      		or r24,r25
71
  72 008e 01F0      		breq .L12
72
  73 0090 8091 0000 		lds r24,beeptime
73
  74 0094 9091 0000 		lds r25,(beeptime)+1
74
  75 0098 0B97      		sbiw r24,11
75
  76 009a 00F0      		brlo .L14
76
  77 009c 8091 0000 		lds r24,beeptime
77
  78 00a0 9091 0000 		lds r25,(beeptime)+1
78
  79 00a4 0A97      		sbiw r24,10
79
  80 00a6 9093 0000 		sts (beeptime)+1,r25
80
  81 00aa 8093 0000 		sts beeptime,r24
81
  82 00ae 00C0      		rjmp .L16
82
  83               	.L14:
83
  84 00b0 1092 0000 		sts (beeptime)+1,__zero_reg__
84
  85 00b4 1092 0000 		sts beeptime,__zero_reg__
85
  86               	.L16:
86
  87 00b8 8091 0000 		lds r24,beeptime
87
  88 00bc 9091 0000 		lds r25,(beeptime)+1
88
  89 00c0 2091 0000 		lds r18,BeepMuster
89
  90 00c4 3091 0000 		lds r19,(BeepMuster)+1
90
  91 00c8 8223      		and r24,r18
91
  92 00ca 9323      		and r25,r19
92
  93 00cc 892B      		or r24,r25
93
  94 00ce 01F0      		breq .+2
94
  95 00d0 00C0      		rjmp .L17
95
  96 00d2 00C0      		rjmp .L18
96
  97               	.L12:
97
  98 00d4 8FEF      		ldi r24,lo8(-1)
98
  99 00d6 9FEF      		ldi r25,hi8(-1)
99
 100 00d8 9093 0000 		sts (BeepMuster)+1,r25
100
 101 00dc 8093 0000 		sts BeepMuster,r24
101
 102               	.L18:
102
 103 00e0 8091 0000 		lds r24,PlatinenVersion
103
 104 00e4 8A30      		cpi r24,lo8(10)
104
 105 00e6 01F4      		brne .L37
105
 106 00e8 00C0      		rjmp .L19
106
 107               	.L21:
107
 108 00ea 5A9A      		sbi 43-0x20,2
108
 109 00ec 00C0      		rjmp .L6
109
 110               	.L38:
110
 111 00ee 479A      		sbi 40-0x20,7
111
 112 00f0 00C0      		rjmp .L6
112
 113               	.L19:
113
 114 00f2 5A98      		cbi 43-0x20,2
114
 115 00f4 00C0      		rjmp .L6
115
 116               	.L37:
116
 117 00f6 4798      		cbi 40-0x20,7
117
 118               	.L6:
118
 119 00f8 8091 0000 		lds r24,compass_active.2509
119
 120 00fc 8823      		tst r24
120
 121 00fe 01F4      		brne .+2
121
 122 0100 00C0      		rjmp .L36
122
 123 0102 8091 0000 		lds r24,NaviDataOkay
123
 124 0106 8823      		tst r24
124
 125 0108 01F0      		breq .+2
125
 126 010a 00C0      		rjmp .L36
126
 127 010c 8091 0000 		lds r24,EE_Parameter+13
127
 128 0110 83FF      		sbrs r24,3
128
 129 0112 00C0      		rjmp .L36
129
 130 0114 349B      		sbis 38-0x20,4
130
 131 0116 00C0      		rjmp .L27
131
 132 0118 8091 0000 		lds r24,cntKompass
132
 133 011c 9091 0000 		lds r25,(cntKompass)+1
133
 134 0120 0196      		adiw r24,1
134
 135 0122 9093 0000 		sts (cntKompass)+1,r25
135
 136 0126 8093 0000 		sts cntKompass,r24
136
 137 012a 8091 0000 		lds r24,cntKompass
137
 138 012e 9091 0000 		lds r25,(cntKompass)+1
138
 139 0132 895E      		subi r24,lo8(1001)
139
 140 0134 9340      		sbci r25,hi8(1001)
140
 141 0136 00F4      		brsh .+2
141
 142 0138 00C0      		rjmp .L36
142
 143 013a 1092 0000 		sts compass_active.2509,__zero_reg__
143
 144 013e 00C0      		rjmp .L36
144
 145               	.L27:
145
 146 0140 8091 0000 		lds r24,cntKompass
146
 147 0144 9091 0000 		lds r25,(cntKompass)+1
147
 148 0148 892B      		or r24,r25
148
 149 014a 01F4      		brne .+2
149
 150 014c 00C0      		rjmp .L30
150
 151 014e 8091 0000 		lds r24,cntKompass
151
 152 0152 9091 0000 		lds r25,(cntKompass)+1
152
 153 0156 8A56      		subi r24,lo8(362)
153
 154 0158 9140      		sbci r25,hi8(362)
154
 155 015a 00F4      		brsh .L30
155
 156 015c 2091 0000 		lds r18,cntKompass
156
 157 0160 3091 0000 		lds r19,(cntKompass)+1
157
 158 0164 8091 0000 		lds r24,cntKompass
158
 159 0168 9091 0000 		lds r25,(cntKompass)+1
159
 160 016c 69E2      		ldi r22,lo8(41)
160
 161 016e 70E0      		ldi r23,hi8(41)
161
 162 0170 0E94 0000 		call __udivmodhi4
162
 163 0174 260F      		add r18,r22
163
 164 0176 371F      		adc r19,r23
164
 165 0178 3093 0000 		sts (cntKompass)+1,r19
165
 166 017c 2093 0000 		sts cntKompass,r18
166
 167 0180 8091 0000 		lds r24,cntKompass
167
 168 0184 9091 0000 		lds r25,(cntKompass)+1
168
 169 0188 0B97      		sbiw r24,11
169
 170 018a 00F0      		brlo .L33
170
 171 018c 8091 0000 		lds r24,cntKompass
171
 172 0190 9091 0000 		lds r25,(cntKompass)+1
172
 173 0194 0A97      		sbiw r24,10
173
 174 0196 9093 0000 		sts (KompassValue)+1,r25
174
 175 019a 8093 0000 		sts KompassValue,r24
175
 176 019e 00C0      		rjmp .L35
176
 177               	.L33:
177
 178 01a0 1092 0000 		sts (KompassValue)+1,__zero_reg__
178
 179 01a4 1092 0000 		sts KompassValue,__zero_reg__
179
 180               	.L35:
180
 181 01a8 8091 0000 		lds r24,KompassValue
181
 182 01ac 9091 0000 		lds r25,(KompassValue)+1
182
 183 01b0 845E      		subi r24,lo8(-(540))
183
 184 01b2 9D4F      		sbci r25,hi8(-(540))
184
 185 01b4 2091 0000 		lds r18,KompassStartwert
185
 186 01b8 3091 0000 		lds r19,(KompassStartwert)+1
186
 187 01bc 821B      		sub r24,r18
187
 188 01be 930B      		sbc r25,r19
188
 189 01c0 68E6      		ldi r22,lo8(360)
189
 190 01c2 71E0      		ldi r23,hi8(360)
190
 191 01c4 0E94 0000 		call __divmodhi4
191
 192 01c8 845B      		subi r24,lo8(-(-180))
192
 193 01ca 9040      		sbci r25,hi8(-(-180))
193
 194 01cc 9093 0000 		sts (KompassRichtung)+1,r25
194
 195 01d0 8093 0000 		sts KompassRichtung,r24
195
 196               	.L30:
196
 197 01d4 1092 0000 		sts (cntKompass)+1,__zero_reg__
197
 198 01d8 1092 0000 		sts cntKompass,__zero_reg__
198
 199 01dc 00C0      		rjmp .L36
199
 200               	.L17:
200
 201 01de 8091 0000 		lds r24,PlatinenVersion
201
 202 01e2 8A30      		cpi r24,lo8(10)
202
 203 01e4 01F0      		breq .+2
203
 204 01e6 00C0      		rjmp .L38
204
 205 01e8 00C0      		rjmp .L21
205
 206               	.L36:
206
 207               	/* epilogue: frame size=0 */
207
 208 01ea BF91      		pop r27
208
 209 01ec AF91      		pop r26
209
 210 01ee 9F91      		pop r25
210
 211 01f0 8F91      		pop r24
211
 212 01f2 7F91      		pop r23
212
 213 01f4 6F91      		pop r22
213
 214 01f6 5F91      		pop r21
214
 215 01f8 3F91      		pop r19
215
 216 01fa 2F91      		pop r18
216
 217 01fc 0F90      		pop __tmp_reg__
217
 218 01fe 0FBE      		out __SREG__,__tmp_reg__
218
 219 0200 0F90      		pop __tmp_reg__
219
 220 0202 1F90      		pop __zero_reg__
220
 221 0204 1895      		reti
221
 222               	/* epilogue end (size=14) */
222
 223               	/* function __vector_18 size 263 (235) */
223
 225               	.global	SetDelay
224
 227               	SetDelay:
225
 228               	/* prologue: frame size=0 */
226
 229               	/* prologue end (size=0) */
227
 230 0206 2091 0000 		lds r18,CountMilliseconds
228
 231 020a 3091 0000 		lds r19,(CountMilliseconds)+1
229
 232 020e 2F5F      		subi r18,lo8(-(1))
230
 233 0210 3F4F      		sbci r19,hi8(-(1))
231
 234 0212 820F      		add r24,r18
232
 235 0214 931F      		adc r25,r19
233
 236               	/* epilogue: frame size=0 */
234
 237 0216 0895      		ret
235
 238               	/* epilogue end (size=1) */
236
 239               	/* function SetDelay size 9 (8) */
237
 241               	.global	CheckDelay
238
 243               	CheckDelay:
239
 244               	/* prologue: frame size=0 */
240
 245               	/* prologue end (size=0) */
241
 246 0218 2091 0000 		lds r18,CountMilliseconds
242
 247 021c 3091 0000 		lds r19,(CountMilliseconds)+1
243
 248 0220 821B      		sub r24,r18
244
 249 0222 930B      		sbc r25,r19
245
 250 0224 892F      		mov r24,r25
246
 251 0226 9927      		clr r25
247
 252 0228 8695      		lsr r24
248
 253 022a 8074      		andi r24,lo8(64)
249
 254 022c 90E0      		ldi r25,lo8(0)
250
 255               	/* epilogue: frame size=0 */
251
 256 022e 0895      		ret
252
 257               	/* epilogue end (size=1) */
253
 258               	/* function CheckDelay size 12 (11) */
254
 260               	.global	TIMER2_Init
255
 262               	TIMER2_Init:
256
 263               	/* prologue: frame size=0 */
257
 264               	/* prologue end (size=0) */
258
 265 0230 9FB7      		in r25,95-0x20
259
 266               	/* #APP */
260
 267 0232 F894      		cli
261
 268               	/* #NOAPP */
262
 269 0234 5F98      		cbi 43-0x20,7
263
 270 0236 3E9A      		sbi 39-0x20,6
264
 271 0238 469A      		sbi 40-0x20,6
265
 272 023a A0EB      		ldi r26,lo8(176)
266
 273 023c B0E0      		ldi r27,hi8(176)
267
 274 023e 8C91      		ld r24,X
268
 275 0240 8F70      		andi r24,lo8(15)
269
 276 0242 8C93      		st X,r24
270
 277 0244 8C91      		ld r24,X
271
 278 0246 8360      		ori r24,lo8(3)
272
 279 0248 8C93      		st X,r24
273
 280 024a E1EB      		ldi r30,lo8(177)
274
 281 024c F0E0      		ldi r31,hi8(177)
275
 282 024e 8081      		ld r24,Z
276
 283 0250 8B73      		andi r24,lo8(59)
277
 284 0252 8083      		st Z,r24
278
 285 0254 8081      		ld r24,Z
279
 286 0256 8B60      		ori r24,lo8(11)
280
 287 0258 8083      		st Z,r24
281
 288 025a 1092 B200 		sts 178,__zero_reg__
282
 289 025e 8FEF      		ldi r24,lo8(-1)
283
 290 0260 8093 B300 		sts 179,r24
284
 291 0264 8C91      		ld r24,X
285
 292 0266 8068      		ori r24,lo8(-128)
286
 293 0268 8C93      		st X,r24
287
 294 026a E0E7      		ldi r30,lo8(112)
288
 295 026c F0E0      		ldi r31,hi8(112)
289
 296 026e 8081      		ld r24,Z
290
 297 0270 8A7F      		andi r24,lo8(-6)
291
 298 0272 8083      		st Z,r24
292
 299 0274 8081      		ld r24,Z
293
 300 0276 8260      		ori r24,lo8(2)
294
 301 0278 8083      		st Z,r24
295
 302 027a 9FBF      		out 95-0x20,r25
296
 303               	/* epilogue: frame size=0 */
297
 304 027c 0895      		ret
298
 305               	/* epilogue end (size=1) */
299
 306               	/* function TIMER2_Init size 40 (39) */
300
 308               	.global	CalculateServo
301
 310               	CalculateServo:
302
 311               	/* prologue: frame size=2 */
303
 312 027e A2E0      		ldi r26,lo8(2)
304
 313 0280 B0E0      		ldi r27,hi8(2)
305
 314 0282 E0E0      		ldi r30,pm_lo8(1f)
306
 315 0284 F0E0      		ldi r31,pm_hi8(1f)
307
 316 0286 0C94 0000 		jmp __prologue_saves__+0
308
 317               	1:
309
 318               	/* prologue end (size=6) */
310
 319 028a E091 0000 		lds r30,EE_Parameter+55
311
 320 028e F0E0      		ldi r31,lo8(0)
312
 321 0290 E050      		subi r30,lo8(-(sintab))
313
 322 0292 F040      		sbci r31,hi8(-(sintab))
314
 323 0294 8681      		ldd r24,Z+6
315
 324 0296 9081      		ld r25,Z
316
 325 0298 2091 0000 		lds r18,CalculateServoSignals
317
 326 029c 482F      		mov r20,r24
318
 327 029e 5527      		clr r21
319
 328 02a0 47FD      		sbrc r20,7
320
 329 02a2 5095      		com r21
321
 330 02a4 652F      		mov r22,r21
322
 331 02a6 752F      		mov r23,r21
323
 332 02a8 6090 0000 		lds r6,IntegralNick
324
 333 02ac 7090 0000 		lds r7,(IntegralNick)+1
325
 334 02b0 8090 0000 		lds r8,(IntegralNick)+2
326
 335 02b4 9090 0000 		lds r9,(IntegralNick)+3
327
 336 02b8 292E      		mov r2,r25
328
 337 02ba 3324      		clr r3
329
 338 02bc 27FC      		sbrc r2,7
330
 339 02be 3094      		com r3
331
 340 02c0 432C      		mov r4,r3
332
 341 02c2 532C      		mov r5,r3
333
 342 02c4 A090 0000 		lds r10,IntegralRoll
334
 343 02c8 B090 0000 		lds r11,(IntegralRoll)+1
335
 344 02cc C090 0000 		lds r12,(IntegralRoll)+2
336
 345 02d0 D090 0000 		lds r13,(IntegralRoll)+3
337
 346 02d4 8091 0000 		lds r24,EE_Parameter+54
338
 347 02d8 8983      		std Y+1,r24
339
 348 02da E091 0000 		lds r30,EE_Parameter+101
340
 349 02de EA83      		std Y+2,r30
341
 350 02e0 2130      		cpi r18,lo8(1)
342
 351 02e2 01F0      		breq .+2
343
 352 02e4 00C0      		rjmp .L46
344
 353 02e6 CB01      		movw r24,r22
345
 354 02e8 BA01      		movw r22,r20
346
 355 02ea A401      		movw r20,r8
347
 356 02ec 9301      		movw r18,r6
348
 357 02ee 0E94 0000 		call __mulsi3
349
 358 02f2 20E8      		ldi r18,lo8(128)
350
 359 02f4 30E0      		ldi r19,hi8(128)
351
 360 02f6 40E0      		ldi r20,hlo8(128)
352
 361 02f8 50E0      		ldi r21,hhi8(128)
353
 362 02fa 0E94 0000 		call __divmodsi4
354
 363 02fe 7901      		movw r14,r18
355
 364 0300 8A01      		movw r16,r20
356
 365 0302 C201      		movw r24,r4
357
 366 0304 B101      		movw r22,r2
358
 367 0306 A601      		movw r20,r12
359
 368 0308 9501      		movw r18,r10
360
 369 030a 0E94 0000 		call __mulsi3
361
 370 030e 20E8      		ldi r18,lo8(128)
362
 371 0310 30E0      		ldi r19,hi8(128)
363
 372 0312 40E0      		ldi r20,hlo8(128)
364
 373 0314 50E0      		ldi r21,hhi8(128)
365
 374 0316 0E94 0000 		call __divmodsi4
366
 375 031a E21A      		sub r14,r18
367
 376 031c F30A      		sbc r15,r19
368
 377 031e 040B      		sbc r16,r20
369
 378 0320 150B      		sbc r17,r21
370
 379 0322 2091 0000 		lds r18,EE_Parameter+46
371
 380 0326 30E0      		ldi r19,lo8(0)
372
 381 0328 40E0      		ldi r20,lo8(0)
373
 382 032a 50E0      		ldi r21,hi8(0)
374
 383 032c C801      		movw r24,r16
375
 384 032e B701      		movw r22,r14
376
 385 0330 0E94 0000 		call __mulsi3
377
 386 0334 20E0      		ldi r18,lo8(512)
378
 387 0336 32E0      		ldi r19,hi8(512)
379
 388 0338 40E0      		ldi r20,hlo8(512)
380
 389 033a 50E0      		ldi r21,hhi8(512)
381
 390 033c 0E94 0000 		call __divmodsi4
382
 391 0340 5901      		movw r10,r18
383
 392 0342 6A01      		movw r12,r20
384
 393 0344 2091 0000 		lds r18,ServoNickOffset
385
 394 0348 3091 0000 		lds r19,(ServoNickOffset)+1
386
 395 034c 4091 0000 		lds r20,ServoNickOffset
387
 396 0350 5091 0000 		lds r21,(ServoNickOffset)+1
388
 397 0354 8091 0000 		lds r24,Parameter_ServoNickControl
389
 398 0358 90E0      		ldi r25,lo8(0)
390
 399 035a F6E0      		ldi r31,6
391
 400 035c 880F      	1:	lsl r24
392
 401 035e 991F      		rol r25
393
 402 0360 FA95      		dec r31
394
 403 0362 01F4      		brne 1b
395
 404 0364 F981      		ldd r31,Y+1
396
 405 0366 6F2F      		mov r22,r31
397
 406 0368 70E0      		ldi r23,lo8(0)
398
 407 036a 841B      		sub r24,r20
399
 408 036c 950B      		sbc r25,r21
400
 409 036e 0E94 0000 		call __divmodhi4
401
 410 0372 260F      		add r18,r22
402
 411 0374 371F      		adc r19,r23
403
 412 0376 3093 0000 		sts (ServoNickOffset)+1,r19
404
 413 037a 2093 0000 		sts ServoNickOffset,r18
405
 414 037e 8091 0000 		lds r24,ServoNickOffset
406
 415 0382 9091 0000 		lds r25,(ServoNickOffset)+1
407
 416 0386 60E1      		ldi r22,lo8(16)
408
 417 0388 70E0      		ldi r23,hi8(16)
409
 418 038a 0E94 0000 		call __divmodhi4
410
 419 038e 7093 0000 		sts (ServoNickValue)+1,r23
411
 420 0392 6093 0000 		sts ServoNickValue,r22
412
 421 0396 8A81      		ldd r24,Y+2
413
 422 0398 80FF      		sbrs r24,0
414
 423 039a 00C0      		rjmp .L48
415
 424 039c 8091 0000 		lds r24,ServoNickValue
416
 425 03a0 9091 0000 		lds r25,(ServoNickValue)+1
417
 426 03a4 8A0D      		add r24,r10
418
 427 03a6 9B1D      		adc r25,r11
419
 428 03a8 00C0      		rjmp .L66
420
 429               	.L48:
421
 430 03aa 8091 0000 		lds r24,ServoNickValue
422
 431 03ae 9091 0000 		lds r25,(ServoNickValue)+1
423
 432 03b2 8A19      		sub r24,r10
424
 433 03b4 9B09      		sbc r25,r11
425
 434               	.L66:
426
 435 03b6 9093 0000 		sts (ServoNickValue)+1,r25
427
 436 03ba 8093 0000 		sts ServoNickValue,r24
428
 437 03be 2091 0000 		lds r18,ServoNickValue
429
 438 03c2 3091 0000 		lds r19,(ServoNickValue)+1
430
 439 03c6 8091 0000 		lds r24,EE_Parameter+47
431
 440 03ca 90E0      		ldi r25,lo8(0)
432
 441 03cc 880F      		lsl r24
433
 442 03ce 991F      		rol r25
434
 443 03d0 880F      		lsl r24
435
 444 03d2 991F      		rol r25
436
 445 03d4 2817      		cp r18,r24
437
 446 03d6 3907      		cpc r19,r25
438
 447 03d8 04F0      		brlt .L67
439
 448 03da 2091 0000 		lds r18,ServoNickValue
440
 449 03de 3091 0000 		lds r19,(ServoNickValue)+1
441
 450 03e2 8091 0000 		lds r24,EE_Parameter+48
442
 451 03e6 90E0      		ldi r25,lo8(0)
443
 452 03e8 880F      		lsl r24
444
 453 03ea 991F      		rol r25
445
 454 03ec 880F      		lsl r24
446
 455 03ee 991F      		rol r25
447
 456 03f0 8217      		cp r24,r18
448
 457 03f2 9307      		cpc r25,r19
449
 458 03f4 04F4      		brge .L53
450
 459               	.L67:
451
 460 03f6 9093 0000 		sts (ServoNickValue)+1,r25
452
 461 03fa 8093 0000 		sts ServoNickValue,r24
453
 462               	.L53:
454
 463 03fe 8091 0000 		lds r24,PlatinenVersion
455
 464 0402 8431      		cpi r24,lo8(20)
456
 465 0404 00F4      		brsh .+2
457
 466 0406 00C0      		rjmp .L63
458
 467 0408 8091 0000 		lds r24,CalculateServoSignals
459
 468 040c 8F5F      		subi r24,lo8(-(1))
460
 469 040e 8093 0000 		sts CalculateServoSignals,r24
461
 470 0412 00C0      		rjmp .L65
462
 471               	.L46:
463
 472 0414 CB01      		movw r24,r22
464
 473 0416 BA01      		movw r22,r20
465
 474 0418 A601      		movw r20,r12
466
 475 041a 9501      		movw r18,r10
467
 476 041c 0E94 0000 		call __mulsi3
468
 477 0420 20E8      		ldi r18,lo8(128)
469
 478 0422 30E0      		ldi r19,hi8(128)
470
 479 0424 40E0      		ldi r20,hlo8(128)
471
 480 0426 50E0      		ldi r21,hhi8(128)
472
 481 0428 0E94 0000 		call __divmodsi4
473
 482 042c 7901      		movw r14,r18
474
 483 042e 8A01      		movw r16,r20
475
 484 0430 C201      		movw r24,r4
476
 485 0432 B101      		movw r22,r2
477
 486 0434 A401      		movw r20,r8
478
 487 0436 9301      		movw r18,r6
479
 488 0438 0E94 0000 		call __mulsi3
480
 489 043c 20E8      		ldi r18,lo8(128)
481
 490 043e 30E0      		ldi r19,hi8(128)
482
 491 0440 40E0      		ldi r20,hlo8(128)
483
 492 0442 50E0      		ldi r21,hhi8(128)
484
 493 0444 0E94 0000 		call __divmodsi4
485
 494 0448 E20E      		add r14,r18
486
 495 044a F31E      		adc r15,r19
487
 496 044c 041F      		adc r16,r20
488
 497 044e 151F      		adc r17,r21
489
 498 0450 2091 0000 		lds r18,EE_Parameter+50
490
 499 0454 30E0      		ldi r19,lo8(0)
491
 500 0456 40E0      		ldi r20,lo8(0)
492
 501 0458 50E0      		ldi r21,hi8(0)
493
 502 045a C801      		movw r24,r16
494
 503 045c B701      		movw r22,r14
495
 504 045e 0E94 0000 		call __mulsi3
496
 505 0462 20E0      		ldi r18,lo8(512)
497
 506 0464 32E0      		ldi r19,hi8(512)
498
 507 0466 40E0      		ldi r20,hlo8(512)
499
 508 0468 50E0      		ldi r21,hhi8(512)
500
 509 046a 0E94 0000 		call __divmodsi4
501
 510 046e 5901      		movw r10,r18
502
 511 0470 6A01      		movw r12,r20
503
 512 0472 2091 0000 		lds r18,ServoRollOffset
504
 513 0476 3091 0000 		lds r19,(ServoRollOffset)+1
505
 514 047a 4091 0000 		lds r20,ServoRollOffset
506
 515 047e 5091 0000 		lds r21,(ServoRollOffset)+1
507
 516 0482 8091 0000 		lds r24,Parameter_ServoRollControl
508
 517 0486 90E0      		ldi r25,lo8(0)
509
 518 0488 66E0      		ldi r22,6
510
 519 048a 880F      	1:	lsl r24
511
 520 048c 991F      		rol r25
512
 521 048e 6A95      		dec r22
513
 522 0490 01F4      		brne 1b
514
 523 0492 E981      		ldd r30,Y+1
515
 524 0494 6E2F      		mov r22,r30
516
 525 0496 70E0      		ldi r23,lo8(0)
517
 526 0498 841B      		sub r24,r20
518
 527 049a 950B      		sbc r25,r21
519
 528 049c 0E94 0000 		call __divmodhi4
520
 529 04a0 260F      		add r18,r22
521
 530 04a2 371F      		adc r19,r23
522
 531 04a4 3093 0000 		sts (ServoRollOffset)+1,r19
523
 532 04a8 2093 0000 		sts ServoRollOffset,r18
524
 533 04ac 8091 0000 		lds r24,ServoRollOffset
525
 534 04b0 9091 0000 		lds r25,(ServoRollOffset)+1
526
 535 04b4 60E1      		ldi r22,lo8(16)
527
 536 04b6 70E0      		ldi r23,hi8(16)
528
 537 04b8 0E94 0000 		call __divmodhi4
529
 538 04bc 7093 0000 		sts (ServoRollValue)+1,r23
530
 539 04c0 6093 0000 		sts ServoRollValue,r22
531
 540 04c4 FA81      		ldd r31,Y+2
532
 541 04c6 F1FF      		sbrs r31,1
533
 542 04c8 00C0      		rjmp .L58
534
 543 04ca 8091 0000 		lds r24,ServoRollValue
535
 544 04ce 9091 0000 		lds r25,(ServoRollValue)+1
536
 545 04d2 8A0D      		add r24,r10
537
 546 04d4 9B1D      		adc r25,r11
538
 547 04d6 00C0      		rjmp .L68
539
 548               	.L58:
540
 549 04d8 8091 0000 		lds r24,ServoRollValue
541
 550 04dc 9091 0000 		lds r25,(ServoRollValue)+1
542
 551 04e0 8A19      		sub r24,r10
543
 552 04e2 9B09      		sbc r25,r11
544
 553               	.L68:
545
 554 04e4 9093 0000 		sts (ServoRollValue)+1,r25
546
 555 04e8 8093 0000 		sts ServoRollValue,r24
547
 556 04ec 2091 0000 		lds r18,ServoRollValue
548
 557 04f0 3091 0000 		lds r19,(ServoRollValue)+1
549
 558 04f4 8091 0000 		lds r24,EE_Parameter+51
550
 559 04f8 90E0      		ldi r25,lo8(0)
551
 560 04fa 880F      		lsl r24
552
 561 04fc 991F      		rol r25
553
 562 04fe 880F      		lsl r24
554
 563 0500 991F      		rol r25
555
 564 0502 2817      		cp r18,r24
556
 565 0504 3907      		cpc r19,r25
557
 566 0506 04F0      		brlt .L69
558
 567 0508 2091 0000 		lds r18,ServoRollValue
559
 568 050c 3091 0000 		lds r19,(ServoRollValue)+1
560
 569 0510 8091 0000 		lds r24,EE_Parameter+52
561
 570 0514 90E0      		ldi r25,lo8(0)
562
 571 0516 880F      		lsl r24
563
 572 0518 991F      		rol r25
564
 573 051a 880F      		lsl r24
565
 574 051c 991F      		rol r25
566
 575 051e 8217      		cp r24,r18
567
 576 0520 9307      		cpc r25,r19
568
 577 0522 04F4      		brge .L63
569
 578               	.L69:
570
 579 0524 9093 0000 		sts (ServoRollValue)+1,r25
571
 580 0528 8093 0000 		sts ServoRollValue,r24
572
 581               	.L63:
573
 582 052c 1092 0000 		sts CalculateServoSignals,__zero_reg__
574
 583               	.L65:
575
 584               	/* epilogue: frame size=2 */
576
 585 0530 E2E1      		ldi r30,18
577
 586 0532 CE5F      		subi r28,-2
578
 587 0534 0C94 0000 		jmp __epilogue_restores__+0
579
 588               	/* epilogue end (size=4) */
580
 589               	/* function CalculateServo size 349 (339) */
581
 591               	.global	__vector_9
582
 593               	__vector_9:
583
 594               	/* prologue: frame size=0 */
584
 595 0538 1F92      		push __zero_reg__
585
 596 053a 0F92      		push __tmp_reg__
586
 597 053c 0FB6      		in __tmp_reg__,__SREG__
587
 598 053e 0F92      		push __tmp_reg__
588
 599 0540 1124      		clr __zero_reg__
589
 600 0542 2F93      		push r18
590
 601 0544 3F93      		push r19
591
 602 0546 4F93      		push r20
592
 603 0548 5F93      		push r21
593
 604 054a 8F93      		push r24
594
 605 054c 9F93      		push r25
595
 606 054e EF93      		push r30
596
 607 0550 FF93      		push r31
597
 608               	/* prologue end (size=13) */
598
 609 0552 8091 0000 		lds r24,PlatinenVersion
599
 610 0556 9091 0000 		lds r25,PulseOutput.2750
600
 611 055a 8431      		cpi r24,lo8(20)
601
 612 055c 00F0      		brlo .+2
602
 613 055e 00C0      		rjmp .L71
603
 614 0560 9923      		tst r25
604
 615 0562 01F0      		breq .+2
605
 616 0564 00C0      		rjmp .L73
606
 617 0566 8091 B000 		lds r24,176
607
 618 056a 86FF      		sbrs r24,6
608
 619 056c 00C0      		rjmp .L75
609
 620 056e 8091 B000 		lds r24,176
610
 621 0572 8F7B      		andi r24,lo8(-65)
611
 622 0574 8093 B000 		sts 176,r24
612
 623 0578 8091 0000 		lds r24,ServoNickValue
613
 624 057c 9091 0000 		lds r25,(ServoNickValue)+1
614
 625 0580 8755      		subi r24,lo8(-(425))
615
 626 0582 9E4F      		sbci r25,hi8(-(425))
616
 627 0584 9093 0000 		sts (RemainingPulse)+1,r25
617
 628 0588 8093 0000 		sts RemainingPulse,r24
618
 629 058c 25E0      		ldi r18,hi8(1501)
619
 630 058e 8D3D      		cpi r24,lo8(1501)
620
 631 0590 9207      		cpc r25,r18
621
 632 0592 00F0      		brlo .L77
622
 633 0594 8CED      		ldi r24,lo8(1500)
623
 634 0596 95E0      		ldi r25,hi8(1500)
624
 635 0598 00C0      		rjmp .L114
625
 636               	.L77:
626
 637 059a 8757      		subi r24,lo8(375)
627
 638 059c 9140      		sbci r25,hi8(375)
628
 639 059e 00F4      		brsh .L79
629
 640 05a0 87E7      		ldi r24,lo8(375)
630
 641 05a2 91E0      		ldi r25,hi8(375)
631
 642               	.L114:
632
 643 05a4 9093 0000 		sts (RemainingPulse)+1,r25
633
 644 05a8 8093 0000 		sts RemainingPulse,r24
634
 645               	.L79:
635
 646 05ac 8091 0000 		lds r24,RemainingPulse
636
 647 05b0 9091 0000 		lds r25,(RemainingPulse)+1
637
 648 05b4 00C0      		rjmp .L119
638
 649               	.L75:
639
 650 05b6 8091 B000 		lds r24,176
640
 651 05ba 8064      		ori r24,lo8(64)
641
 652 05bc 8093 B000 		sts 176,r24
642
 653 05c0 8091 0000 		lds r24,EE_Parameter+53
643
 654 05c4 90E0      		ldi r25,lo8(0)
644
 655 05c6 2DED      		ldi r18,lo8(1757)
645
 656 05c8 36E0      		ldi r19,hi8(1757)
646
 657 05ca AC01      		movw r20,r24
647
 658 05cc 429F      		mul r20,r18
648
 659 05ce C001      		movw r24,r0
649
 660 05d0 439F      		mul r20,r19
650
 661 05d2 900D      		add r25,r0
651
 662 05d4 529F      		mul r21,r18
652
 663 05d6 900D      		add r25,r0
653
 664 05d8 1124      		clr r1
654
 665 05da 2091 0000 		lds r18,ServoFrameTime.2751
655
 666 05de 3091 0000 		lds r19,(ServoFrameTime.2751)+1
656
 667 05e2 821B      		sub r24,r18
657
 668 05e4 930B      		sbc r25,r19
658
 669 05e6 9093 0000 		sts (RemainingPulse)+1,r25
659
 670 05ea 8093 0000 		sts RemainingPulse,r24
660
 671 05ee 81E0      		ldi r24,lo8(1)
661
 672 05f0 8093 0000 		sts CalculateServoSignals,r24
662
 673 05f4 00C0      		rjmp .L87
663
 674               	.L71:
664
 675 05f6 9923      		tst r25
665
 676 05f8 01F0      		breq .+2
666
 677 05fa 00C0      		rjmp .L73
667
 678 05fc 8091 B000 		lds r24,176
668
 679 0600 86FF      		sbrs r24,6
669
 680 0602 00C0      		rjmp .L83
670
 681 0604 8091 B000 		lds r24,176
671
 682 0608 8F7B      		andi r24,lo8(-65)
672
 683 060a 8093 B000 		sts 176,r24
673
 684 060e E091 0000 		lds r30,ServoIndex.2752
674
 685 0612 EE23      		tst r30
675
 686 0614 01F4      		brne .L85
676
 687 0616 8091 0000 		lds r24,EE_Parameter+53
677
 688 061a 90E0      		ldi r25,lo8(0)
678
 689 061c 2DED      		ldi r18,lo8(1757)
679
 690 061e 36E0      		ldi r19,hi8(1757)
680
 691 0620 AC01      		movw r20,r24
681
 692 0622 429F      		mul r20,r18
682
 693 0624 C001      		movw r24,r0
683
 694 0626 439F      		mul r20,r19
684
 695 0628 900D      		add r25,r0
685
 696 062a 529F      		mul r21,r18
686
 697 062c 900D      		add r25,r0
687
 698 062e 1124      		clr r1
688
 699 0630 2091 0000 		lds r18,ServoFrameTime.2751
689
 700 0634 3091 0000 		lds r19,(ServoFrameTime.2751)+1
690
 701 0638 821B      		sub r24,r18
691
 702 063a 930B      		sbc r25,r19
692
 703 063c 9093 0000 		sts (RemainingPulse)+1,r25
693
 704 0640 8093 0000 		sts RemainingPulse,r24
694
 705 0644 1092 0000 		sts (ServoFrameTime.2751)+1,__zero_reg__
695
 706 0648 1092 0000 		sts ServoFrameTime.2751,__zero_reg__
696
 707 064c 469A      		sbi 40-0x20,6
697
 708 064e 00C0      		rjmp .L87
698
 709               	.L85:
699
 710 0650 89EA      		ldi r24,lo8(937)
700
 711 0652 93E0      		ldi r25,hi8(937)
701
 712 0654 9093 0000 		sts (RemainingPulse)+1,r25
702
 713 0658 8093 0000 		sts RemainingPulse,r24
703
 714 065c E330      		cpi r30,lo8(3)
704
 715 065e 01F0      		breq .L91
705
 716 0660 E430      		cpi r30,lo8(4)
706
 717 0662 00F4      		brsh .L94
707
 718 0664 E130      		cpi r30,lo8(1)
708
 719 0666 01F0      		breq .L89
709
 720 0668 E230      		cpi r30,lo8(2)
710
 721 066a 01F4      		brne .L88
711
 722 066c 00C0      		rjmp .L90
712
 723               	.L94:
713
 724 066e E430      		cpi r30,lo8(4)
714
 725 0670 01F0      		breq .L92
715
 726 0672 E530      		cpi r30,lo8(5)
716
 727 0674 01F4      		brne .L88
717
 728 0676 00C0      		rjmp .L93
718
 729               	.L89:
719
 730 0678 8091 0000 		lds r24,ServoNickValue
720
 731 067c 9091 0000 		lds r25,(ServoNickValue)+1
721
 732 0680 00C0      		rjmp .L118
722
 733               	.L90:
723
 734 0682 8091 0000 		lds r24,ServoRollValue
724
 735 0686 9091 0000 		lds r25,(ServoRollValue)+1
725
 736 068a 00C0      		rjmp .L118
726
 737               	.L91:
727
 738 068c 8091 0000 		lds r24,Parameter_Servo3
728
 739 0690 00C0      		rjmp .L120
729
 740               	.L92:
730
 741 0692 8091 0000 		lds r24,Parameter_Servo4
731
 742 0696 00C0      		rjmp .L120
732
 743               	.L93:
733
 744 0698 8091 0000 		lds r24,Parameter_Servo5
734
 745               	.L120:
735
 746 069c 90E0      		ldi r25,lo8(0)
736
 747 069e 880F      		lsl r24
737
 748 06a0 991F      		rol r25
738
 749 06a2 880F      		lsl r24
739
 750 06a4 991F      		rol r25
740
 751               	.L118:
741
 752 06a6 8755      		subi r24,lo8(-(425))
742
 753 06a8 9E4F      		sbci r25,hi8(-(425))
743
 754 06aa 00C0      		rjmp .L115
744
 755               	.L88:
745
 756 06ac F0E0      		ldi r31,lo8(0)
746
 757 06ae EE0F      		lsl r30
747
 758 06b0 FF1F      		rol r31
748
 759 06b2 E050      		subi r30,lo8(-(PPM_in))
749
 760 06b4 F040      		sbci r31,hi8(-(PPM_in))
750
 761 06b6 8081      		ld r24,Z
751
 762 06b8 9181      		ldd r25,Z+1
752
 763 06ba 880F      		lsl r24
753
 764 06bc 991F      		rol r25
754
 765 06be 8755      		subi r24,lo8(-(937))
755
 766 06c0 9C4F      		sbci r25,hi8(-(937))
756
 767               	.L115:
757
 768 06c2 9093 0000 		sts (RemainingPulse)+1,r25
758
 769 06c6 8093 0000 		sts RemainingPulse,r24
759
 770 06ca 8091 0000 		lds r24,RemainingPulse
760
 771 06ce 9091 0000 		lds r25,(RemainingPulse)+1
761
 772 06d2 55E0      		ldi r21,hi8(1501)
762
 773 06d4 8D3D      		cpi r24,lo8(1501)
763
 774 06d6 9507      		cpc r25,r21
764
 775 06d8 00F0      		brlo .L96
765
 776 06da 8CED      		ldi r24,lo8(1500)
766
 777 06dc 95E0      		ldi r25,hi8(1500)
767
 778 06de 00C0      		rjmp .L116
768
 779               	.L96:
769
 780 06e0 8757      		subi r24,lo8(375)
770
 781 06e2 9140      		sbci r25,hi8(375)
771
 782 06e4 00F4      		brsh .L98
772
 783 06e6 87E7      		ldi r24,lo8(375)
773
 784 06e8 91E0      		ldi r25,hi8(375)
774
 785               	.L116:
775
 786 06ea 9093 0000 		sts (RemainingPulse)+1,r25
776
 787 06ee 8093 0000 		sts RemainingPulse,r24
777
 788               	.L98:
778
 789 06f2 2091 0000 		lds r18,RemainingPulse
779
 790 06f6 3091 0000 		lds r19,(RemainingPulse)+1
780
 791 06fa 2C5B      		subi r18,lo8(-(-188))
781
 792 06fc 3040      		sbci r19,hi8(-(-188))
782
 793 06fe 3093 0000 		sts (RemainingPulse)+1,r19
783
 794 0702 2093 0000 		sts RemainingPulse,r18
784
 795 0706 8091 0000 		lds r24,ServoFrameTime.2751
785
 796 070a 9091 0000 		lds r25,(ServoFrameTime.2751)+1
786
 797 070e 820F      		add r24,r18
787
 798 0710 931F      		adc r25,r19
788
 799               	.L119:
789
 800 0712 9093 0000 		sts (ServoFrameTime.2751)+1,r25
790
 801 0716 8093 0000 		sts ServoFrameTime.2751,r24
791
 802 071a 00C0      		rjmp .L87
792
 803               	.L83:
793
 804 071c 8091 B000 		lds r24,176
794
 805 0720 8064      		ori r24,lo8(64)
795
 806 0722 8093 B000 		sts 176,r24
796
 807 0726 8CEB      		ldi r24,lo8(188)
797
 808 0728 90E0      		ldi r25,hi8(188)
798
 809 072a 9093 0000 		sts (RemainingPulse)+1,r25
799
 810 072e 8093 0000 		sts RemainingPulse,r24
800
 811 0732 8091 0000 		lds r24,ServoFrameTime.2751
801
 812 0736 9091 0000 		lds r25,(ServoFrameTime.2751)+1
802
 813 073a 8454      		subi r24,lo8(-(188))
803
 814 073c 9F4F      		sbci r25,hi8(-(188))
804
 815 073e 9093 0000 		sts (ServoFrameTime.2751)+1,r25
805
 816 0742 8093 0000 		sts ServoFrameTime.2751,r24
806
 817 0746 8091 0000 		lds r24,ServoActive
807
 818 074a 8823      		tst r24
808
 819 074c 01F0      		breq .L100
809
 820 074e 8091 0000 		lds r24,SenderOkay
810
 821 0752 8333      		cpi r24,lo8(51)
811
 822 0754 00F4      		brsh .L102
812
 823               	.L100:
813
 824 0756 8091 0000 		lds r24,ServoActive
814
 825 075a 8230      		cpi r24,lo8(2)
815
 826 075c 01F4      		brne .L103
816
 827               	.L102:
817
 828 075e 4698      		cbi 40-0x20,6
818
 829 0760 00C0      		rjmp .L104
819
 830               	.L103:
820
 831 0762 469A      		sbi 40-0x20,6
821
 832               	.L104:
822
 833 0764 8091 0000 		lds r24,ServoIndex.2752
823
 834 0768 8F5F      		subi r24,lo8(-(1))
824
 835 076a 8093 0000 		sts ServoIndex.2752,r24
825
 836 076e 9091 0000 		lds r25,EE_Parameter+53
826
 837 0772 9817      		cp r25,r24
827
 838 0774 00F4      		brsh .L87
828
 839 0776 81E0      		ldi r24,lo8(1)
829
 840 0778 8093 0000 		sts CalculateServoSignals,r24
830
 841 077c 1092 0000 		sts ServoIndex.2752,__zero_reg__
831
 842               	.L87:
832
 843 0780 81E0      		ldi r24,lo8(1)
833
 844 0782 8093 0000 		sts PulseOutput.2750,r24
834
 845               	.L73:
835
 846 0786 2091 0000 		lds r18,RemainingPulse
836
 847 078a 3091 0000 		lds r19,(RemainingPulse)+1
837
 848 078e 41E0      		ldi r20,hi8(383)
838
 849 0790 2F37      		cpi r18,lo8(383)
839
 850 0792 3407      		cpc r19,r20
840
 851 0794 00F0      		brlo .L106
841
 852 0796 8FEF      		ldi r24,lo8(-1)
842
 853 0798 8093 B300 		sts 179,r24
843
 854 079c 2F5F      		subi r18,lo8(-(-255))
844
 855 079e 3040      		sbci r19,hi8(-(-255))
845
 856 07a0 00C0      		rjmp .L117
846
 857               	.L106:
847
 858 07a2 2F3F      		cpi r18,255
848
 859 07a4 3105      		cpc r19,__zero_reg__
849
 860 07a6 01F0      		breq .L109
850
 861 07a8 00F0      		brlo .L109
851
 862 07aa 51E0      		ldi r21,hi8(382)
852
 863 07ac 2E37      		cpi r18,lo8(382)
853
 864 07ae 3507      		cpc r19,r21
854
 865 07b0 01F0      		breq .L111
855
 866 07b2 80E8      		ldi r24,lo8(-128)
856
 867 07b4 8093 B300 		sts 179,r24
857
 868 07b8 2058      		subi r18,lo8(-(-128))
858
 869 07ba 3040      		sbci r19,hi8(-(-128))
859
 870               	.L117:
860
 871 07bc 3093 0000 		sts (RemainingPulse)+1,r19
861
 872 07c0 2093 0000 		sts RemainingPulse,r18
862
 873 07c4 00C0      		rjmp .L113
863
 874               	.L111:
864
 875 07c6 8FEF      		ldi r24,lo8(-1)
865
 876 07c8 8093 B300 		sts 179,r24
866
 877 07cc 8FE7      		ldi r24,lo8(127)
867
 878 07ce 90E0      		ldi r25,hi8(127)
868
 879 07d0 9093 0000 		sts (RemainingPulse)+1,r25
869
 880 07d4 8093 0000 		sts RemainingPulse,r24
870
 881 07d8 00C0      		rjmp .L113
871
 882               	.L109:
872
 883 07da 2093 B300 		sts 179,r18
873
 884 07de 1092 0000 		sts (RemainingPulse)+1,__zero_reg__
874
 885 07e2 1092 0000 		sts RemainingPulse,__zero_reg__
875
 886 07e6 1092 0000 		sts PulseOutput.2750,__zero_reg__
876
 887               	.L113:
877
 888               	/* epilogue: frame size=0 */
878
 889 07ea FF91      		pop r31
879
 890 07ec EF91      		pop r30
880
 891 07ee 9F91      		pop r25
881
 892 07f0 8F91      		pop r24
882
 893 07f2 5F91      		pop r21
883
 894 07f4 4F91      		pop r20
884
 895 07f6 3F91      		pop r19
885
 896 07f8 2F91      		pop r18
886
 897 07fa 0F90      		pop __tmp_reg__
887
 898 07fc 0FBE      		out __SREG__,__tmp_reg__
888
 899 07fe 0F90      		pop __tmp_reg__
889
 900 0800 1F90      		pop __zero_reg__
890
 901 0802 1895      		reti
891
 902               	/* epilogue end (size=13) */
892
 903               	/* function __vector_9 size 360 (334) */
893
 905               	.global	Timer_Init
894
 907               	Timer_Init:
895
 908               	/* prologue: frame size=0 */
896
 909               	/* prologue end (size=0) */
897
 910 0804 8091 0000 		lds r24,CountMilliseconds
898
 911 0808 9091 0000 		lds r25,(CountMilliseconds)+1
899
 912 080c 0B96      		adiw r24,11
900
 913 080e 9093 0000 		sts (tim_main)+1,r25
901
 914 0812 8093 0000 		sts tim_main,r24
902
 915 0816 82E0      		ldi r24,lo8(2)
903
 916 0818 85BD      		out 69-0x20,r24
904
 917 081a 83EA      		ldi r24,lo8(-93)
905
 918 081c 84BD      		out 68-0x20,r24
906
 919 081e 17BC      		out 71-0x20,__zero_reg__
907
 920 0820 84EB      		ldi r24,lo8(-76)
908
 921 0822 88BD      		out 72-0x20,r24
909
 922 0824 86E0      		ldi r24,lo8(6)
910
 923 0826 86BD      		out 70-0x20,r24
911
 924 0828 EEE6      		ldi r30,lo8(110)
912
 925 082a F0E0      		ldi r31,hi8(110)
913
 926 082c 8081      		ld r24,Z
914
 927 082e 8160      		ori r24,lo8(1)
915
 928 0830 8083      		st Z,r24
916
 929               	/* epilogue: frame size=0 */
917
 930 0832 0895      		ret
918
 931               	/* epilogue end (size=1) */
919
 932               	/* function Timer_Init size 24 (23) */
920
 934               	.global	Delay_ms_Mess
921
 936               	Delay_ms_Mess:
922
 937               	/* prologue: frame size=0 */
923
 938               	/* prologue end (size=0) */
924
 939 0834 AC01      		movw r20,r24
925
 940 0836 2091 0000 		lds r18,CountMilliseconds
926
 941 083a 3091 0000 		lds r19,(CountMilliseconds)+1
927
 942 083e 2F5F      		subi r18,lo8(-(1))
928
 943 0840 3F4F      		sbci r19,hi8(-(1))
929
 944 0842 00C0      		rjmp .L132
930
 945               	.L125:
931
 946 0844 8091 0000 		lds r24,AdReady
932
 947 0848 8823      		tst r24
933
 948 084a 01F0      		breq .L132
934
 949 084c 1092 0000 		sts AdReady,__zero_reg__
935
 950 0850 8FEC      		ldi r24,lo8(-49)
936
 951 0852 8093 7A00 		sts 122,r24
937
 952               	.L132:
938
 953 0856 8091 0000 		lds r24,CountMilliseconds
939
 954 085a 9091 0000 		lds r25,(CountMilliseconds)+1
940
 955 085e B901      		movw r22,r18
941
 956 0860 681B      		sub r22,r24
942
 957 0862 790B      		sbc r23,r25
943
 958 0864 CB01      		movw r24,r22
944
 959 0866 840F      		add r24,r20
945
 960 0868 951F      		adc r25,r21
946
 961 086a 8070      		andi r24,lo8(-32768)
947
 962 086c 9078      		andi r25,hi8(-32768)
948
 963 086e 892F      		mov r24,r25
949
 964 0870 9927      		clr r25
950
 965 0872 8695      		lsr r24
951
 966 0874 8823      		tst r24
952
 967 0876 01F0      		breq .L125
953
 968               	/* epilogue: frame size=0 */
954
 969 0878 0895      		ret
955
 970               	/* epilogue end (size=1) */
956
 971               	/* function Delay_ms_Mess size 35 (34) */
957
 973               	.global	Delay_ms
958
 975               	Delay_ms:
959
 976               	/* prologue: frame size=0 */
960
 977               	/* prologue end (size=0) */
961
 978 087a AC01      		movw r20,r24
962
 979 087c 2091 0000 		lds r18,CountMilliseconds
963
 980 0880 3091 0000 		lds r19,(CountMilliseconds)+1
964
 981 0884 2F5F      		subi r18,lo8(-(1))
965
 982 0886 3F4F      		sbci r19,hi8(-(1))
966
 983               	.L134:
967
 984 0888 8091 0000 		lds r24,CountMilliseconds
968
 985 088c 9091 0000 		lds r25,(CountMilliseconds)+1
969
 986 0890 B901      		movw r22,r18
970
 987 0892 681B      		sub r22,r24
971
 988 0894 790B      		sbc r23,r25
972
 989 0896 CB01      		movw r24,r22
973
 990 0898 840F      		add r24,r20
974
 991 089a 951F      		adc r25,r21
975
 992 089c 8070      		andi r24,lo8(-32768)
976
 993 089e 9078      		andi r25,hi8(-32768)
977
 994 08a0 892F      		mov r24,r25
978
 995 08a2 9927      		clr r25
979
 996 08a4 8695      		lsr r24
980
 997 08a6 8823      		tst r24
981
 998 08a8 01F0      		breq .L134
982
 999               	/* epilogue: frame size=0 */
983
 1000 08aa 0895      		ret
984
 1001               	/* epilogue end (size=1) */
985
 1002               	/* function Delay_ms size 25 (24) */
986
 1004               	.global	CountMilliseconds
987
 1005               	.global	CountMilliseconds
988
 1006               		.section .bss
989
 1009               	CountMilliseconds:
990
 1010 0000 0000      		.skip 2,0
991
 1011               	.global	UpdateMotor
992
 1012               	.global	UpdateMotor
993
 1015               	UpdateMotor:
994
 1016 0002 00        		.skip 1,0
995
 1017               	.global	cntKompass
996
 1018               	.global	cntKompass
997
 1021               	cntKompass:
998
 1022 0003 0000      		.skip 2,0
999
 1023               	.global	beeptime
1000
 1024               	.global	beeptime
1001
 1027               	beeptime:
1002
 1028 0005 0000      		.skip 2,0
1003
 1029               	.global	SendSPI
1004
 1030               	.global	SendSPI
1005
 1033               	SendSPI:
1006
 1034 0007 00        		.skip 1,0
1007
 1035               	.global	ServoActive
1008
 1036               	.global	ServoActive
1009
 1039               	ServoActive:
1010
 1040 0008 00        		.skip 1,0
1011
 1041               	.global	CalculateServoSignals
1012
 1042               		.data
1013
 1045               	CalculateServoSignals:
1014
 1046 0000 01        		.byte	1
1015
 1047               	.global	RemainingPulse
1016
 1048               	.global	RemainingPulse
1017
 1049               		.section .bss
1018
 1052               	RemainingPulse:
1019
 1053 0009 0000      		.skip 2,0
1020
 1054               	.global	ServoNickOffset
1021
 1055               		.data
1022
 1058               	ServoNickOffset:
1023
 1059 0001 C01F      		.word	8128
1024
 1060               	.global	ServoRollOffset
1025
 1063               	ServoRollOffset:
1026
 1064 0003 C01F      		.word	8128
1027
 1065               	.global	BeepMuster
1028
 1068               	BeepMuster:
1029
 1069 0005 FFFF      		.word	-1
1030
 1070               	.global	ServoNickValue
1031
 1071               	.global	ServoNickValue
1032
 1072               		.section .bss
1033
 1075               	ServoNickValue:
1034
 1076 000b 0000      		.skip 2,0
1035
 1077               	.global	ServoRollValue
1036
 1078               	.global	ServoRollValue
1037
 1081               	ServoRollValue:
1038
 1082 000d 0000      		.skip 2,0
1039
 1083               		.lcomm ServoIndex.2752,1
1040
 1084               		.lcomm ServoFrameTime.2751,2
1041
 1085               		.lcomm PulseOutput.2750,1
1042
 1086               		.lcomm compass_active.2509,1
1043
 1087               		.lcomm cnt.2508,1
1044
 1088               		.data
1045
 1091               	cnt_1ms.2507:
1046
 1092 0007 01        		.byte	1
1047
 1093               		.lcomm tim_main,2
1048
 1094               	/* File "timer0.c": code 1117 = 0x045d (1047), prologues  33, epilogues  37 */
1049
DEFINED SYMBOLS
1050
                            *ABS*:00000000 timer0.c
1051
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:2      *ABS*:0000003f __SREG__
1052
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:3      *ABS*:0000003e __SP_H__
1053
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:4      *ABS*:0000003d __SP_L__
1054
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:5      *ABS*:00000000 __tmp_reg__
1055
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:6      *ABS*:00000001 __zero_reg__
1056
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:12     .text:00000000 __vector_18
1057
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1033   .bss:00000007 SendSPI
1058
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1086   .bss:00000014 cnt.2508
1059
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1009   .bss:00000000 CountMilliseconds
1060
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1091   .data:00000007 cnt_1ms.2507
1061
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1015   .bss:00000002 UpdateMotor
1062
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1085   .bss:00000013 compass_active.2509
1063
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1027   .bss:00000005 beeptime
1064
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1068   .data:00000005 BeepMuster
1065
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1021   .bss:00000003 cntKompass
1066
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:227    .text:00000206 SetDelay
1067
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:243    .text:00000218 CheckDelay
1068
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:262    .text:00000230 TIMER2_Init
1069
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:310    .text:0000027e CalculateServo
1070
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1045   .data:00000000 CalculateServoSignals
1071
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1058   .data:00000001 ServoNickOffset
1072
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1075   .bss:0000000b ServoNickValue
1073
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1063   .data:00000003 ServoRollOffset
1074
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1081   .bss:0000000d ServoRollValue
1075
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:593    .text:00000538 __vector_9
1076
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1084   .bss:00000012 PulseOutput.2750
1077
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1052   .bss:00000009 RemainingPulse
1078
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1083   .bss:00000010 ServoFrameTime.2751
1079
                             .bss:0000000f ServoIndex.2752
1080
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1039   .bss:00000008 ServoActive
1081
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:907    .text:00000804 Timer_Init
1082
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1087   .bss:00000015 tim_main
1083
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:936    .text:00000834 Delay_ms_Mess
1084
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:975    .text:0000087a Delay_ms
1085
 
1086
UNDEFINED SYMBOLS
1087
__do_copy_data
1088
__do_clear_bss
1089
SpektrumTimer
1090
PlatinenVersion
1091
NaviDataOkay
1092
EE_Parameter
1093
__udivmodhi4
1094
KompassValue
1095
KompassStartwert
1096
__divmodhi4
1097
KompassRichtung
1098
__prologue_saves__
1099
sintab
1100
IntegralNick
1101
IntegralRoll
1102
__mulsi3
1103
__divmodsi4
1104
Parameter_ServoNickControl
1105
Parameter_ServoRollControl
1106
__epilogue_restores__
1107
Parameter_Servo3
1108
Parameter_Servo4
1109
Parameter_Servo5
1110
PPM_in
1111
SenderOkay
1112
AdReady