Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 1788 → Rev 1789

/branches/V0.80g-Arthur-P1/twimaster.lst
1,1175 → 1,1132
1 .file "twimaster.c"
2 .arch atmega644p
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __CCP__ = 0x34
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .global BLConfig_ReadMask
11 .global BLConfig_ReadMask
12 .section .bss
15 BLConfig_ReadMask:
16 0000 0000 .skip 2,0
17 .global BLConfig_WriteMask
18 .global BLConfig_WriteMask
21 BLConfig_WriteMask:
22 0002 0000 .skip 2,0
23 .global BLFlags
24 .global BLFlags
27 BLFlags:
28 0004 00 .skip 1,0
29 .global MissingMotor
30 .global MissingMotor
33 MissingMotor:
34 0005 00 .skip 1,0
35 .global I2CTimeout
36 .data
39 I2CTimeout:
40 0000 6400 .word 100
41 .global motor_read
42 .global motor_read
43 .section .bss
46 motor_read:
47 0006 00 .skip 1,0
48 .global motor_write
49 .global motor_write
52 motor_write:
53 0007 00 .skip 1,0
54 .global dac_channel
55 .global dac_channel
58 dac_channel:
59 0008 00 .skip 1,0
60 .global twi_state
61 .global twi_state
64 twi_state:
65 0009 00 .skip 1,0
66 .text
67 .global I2C_Init
69 I2C_Init:
70 /* prologue: frame size=0 */
71 /* prologue end (size=0) */
72 0000 9FB7 in r25,95-0x20
73 /* #APP */
74 0002 F894 cli
75 /* #NOAPP */
76 0004 3998 cbi 39-0x20,1
77 0006 389A sbi 39-0x20,0
78 0008 88B1 in r24,40-0x20
79 000a 8360 ori r24,lo8(3)
80 000c 88B9 out 40-0x20,r24
81 000e 8091 B900 lds r24,185
82 0012 8C7F andi r24,lo8(-4)
83 0014 8093 B900 sts 185,r24
84 0018 8AE2 ldi r24,lo8(42)
85 001a 8093 B800 sts 184,r24
86 001e 1092 0000 sts twi_state,__zero_reg__
87 0022 1092 0000 sts motor_write,__zero_reg__
88 0026 1092 0000 sts motor_read,__zero_reg__
89 002a E0E0 ldi r30,lo8(Motor)
90 002c F0E0 ldi r31,hi8(Motor)
91 002e 8BE0 ldi r24,lo8(11)
92 .L5:
93 0030 1082 st Z,__zero_reg__
94 0032 1182 std Z+1,__zero_reg__
95 0034 1282 std Z+2,__zero_reg__
96 0036 1382 std Z+3,__zero_reg__
97 0038 1482 std Z+4,__zero_reg__
98 003a 1582 std Z+5,__zero_reg__
99 003c 1682 std Z+6,__zero_reg__
100 003e 1782 std Z+7,__zero_reg__
101 0040 8150 subi r24,lo8(-(-1))
102 0042 3896 adiw r30,8
103 0044 87FF sbrs r24,7
104 0046 F4CF rjmp .L5
105 0048 9FBF out 95-0x20,r25
106 /* epilogue: frame size=0 */
107 004a 0895 ret
108 /* epilogue end (size=1) */
109 /* function I2C_Init size 39 (38) */
111 .global I2C_Reset
113 I2C_Reset:
114 /* prologue: frame size=0 */
115 /* prologue end (size=0) */
116 004c 1092 0000 sts twi_state,__zero_reg__
117 0050 84E9 ldi r24,lo8(-108)
118 0052 8093 BC00 sts 188,r24
119 0056 1092 0000 sts motor_write,__zero_reg__
120 005a 1092 0000 sts motor_read,__zero_reg__
121 005e 80E8 ldi r24,lo8(-128)
122 0060 8093 BC00 sts 188,r24
123 0064 1092 BD00 sts 189,__zero_reg__
124 0068 1092 BA00 sts 186,__zero_reg__
125 006c 1092 BB00 sts 187,__zero_reg__
126 0070 1092 B900 sts 185,__zero_reg__
127 0074 1092 B800 sts 184,__zero_reg__
128 0078 0E94 0000 call I2C_Init
129 007c 1092 BB00 sts 187,__zero_reg__
130 0080 85E8 ldi r24,lo8(-123)
131 0082 8093 BC00 sts 188,r24
132 0086 8091 0000 lds r24,BLFlags
133 008a 8260 ori r24,lo8(2)
134 008c 8093 0000 sts BLFlags,r24
135 /* epilogue: frame size=0 */
136 0090 0895 ret
137 /* epilogue end (size=1) */
138 /* function I2C_Reset size 35 (34) */
140 .lcomm missing_motor.0,1
141 .lcomm motor_read_temperature.1,1
142 .lcomm pBuff.2,2
143 .lcomm BuffLen.3,1
144 .global __vector_26
146 __vector_26:
147 /* prologue: frame size=0 */
148 0092 1F92 push __zero_reg__
149 0094 0F92 push __tmp_reg__
150 0096 0FB6 in __tmp_reg__,__SREG__
151 0098 0F92 push __tmp_reg__
152 009a 1124 clr __zero_reg__
153 009c 2F93 push r18
154 009e 3F93 push r19
155 00a0 4F93 push r20
156 00a2 5F93 push r21
157 00a4 8F93 push r24
158 00a6 9F93 push r25
159 00a8 EF93 push r30
160 00aa FF93 push r31
161 /* prologue end (size=13) */
162 00ac 8091 0000 lds r24,twi_state
163 00b0 282F mov r18,r24
164 00b2 3327 clr r19
165 00b4 4427 clr r20
166 00b6 5527 clr r21
167 00b8 8F5F subi r24,lo8(-(1))
168 00ba 8093 0000 sts twi_state,r24
169 00be F901 movw r30,r18
170 00c0 2731 cpi r18,23
171 00c2 3105 cpc r19,__zero_reg__
172 00c4 08F0 brlo .+2
173 00c6 B3C2 rjmp .L72
174 00c8 E050 subi r30,lo8(-(pm(.L73)))
175 00ca F040 sbci r31,hi8(-(pm(.L73)))
176 00cc 0C94 0000 jmp __tablejump2__
177 .data
178 .section .progmem.gcc_sw_table, "a", @progbits
179 .p2align 1
180 .L73:
181 0000 0000 .word pm(.L76)
182 0002 0000 .word pm(.L17)
183 0004 0000 .word pm(.L22)
184 0006 0000 .word pm(.L27)
185 0008 0000 .word pm(.L29)
186 000a 0000 .word pm(.L33)
187 000c 0000 .word pm(.L50)
188 000e 0000 .word pm(.L72)
189 0010 0000 .word pm(.L72)
190 0012 0000 .word pm(.L72)
191 0014 0000 .word pm(.L72)
192 0016 0000 .word pm(.L72)
193 0018 0000 .word pm(.L72)
194 001a 0000 .word pm(.L72)
195 001c 0000 .word pm(.L72)
196 001e 0000 .word pm(.L72)
197 0020 0000 .word pm(.L72)
198 0022 0000 .word pm(.L72)
199 0024 0000 .word pm(.L60)
200 0026 0000 .word pm(.L61)
201 0028 0000 .word pm(.L62)
202 002a 0000 .word pm(.L68)
203 002c 0000 .word pm(.L69)
204 .text
205 .L75:
206 00d0 8091 0000 lds r24,motor_write
207 00d4 8C30 cpi r24,lo8(12)
208 00d6 90F4 brsh .L13
209 00d8 8091 0000 lds r24,motor_write
210 00dc 8F5F subi r24,lo8(-(1))
211 00de 8093 0000 sts motor_write,r24
212 .L76:
213 00e2 8091 0000 lds r24,motor_write
214 00e6 E82F mov r30,r24
215 00e8 FF27 clr r31
216 00ea EE0F lsl r30
217 00ec FF1F rol r31
218 00ee EE0F lsl r30
219 00f0 FF1F rol r31
220 00f2 E050 subi r30,lo8(-(Mixer))
221 00f4 F040 sbci r31,hi8(-(Mixer))
222 00f6 8585 ldd r24,Z+13
223 00f8 1816 cp __zero_reg__,r24
224 00fa 54F7 brge .L75
225 .L13:
226 00fc 8091 0000 lds r24,motor_write
227 0100 8C30 cpi r24,lo8(12)
228 0102 70F0 brlo .L15
229 0104 1092 0000 sts (BLConfig_WriteMask)+1,__zero_reg__
230 0108 1092 0000 sts BLConfig_WriteMask,__zero_reg__
231 010c 1092 0000 sts motor_write,__zero_reg__
232 0110 85E0 ldi r24,lo8(5)
233 0112 8093 0000 sts twi_state,r24
234 0116 8091 0000 lds r24,motor_read
235 011a 880F lsl r24
236 011c 8D5A subi r24,lo8(-(83))
237 011e 04C0 rjmp .L84
238 .L15:
239 0120 8091 0000 lds r24,motor_write
240 0124 880F lsl r24
241 0126 8E5A subi r24,lo8(-(82))
242 .L84:
243 0128 8093 BB00 sts 187,r24
244 012c 85E8 ldi r24,lo8(-123)
245 012e 74C2 rjmp .L80
246 .L17:
247 0130 8091 0000 lds r24,motor_write
248 0134 E82F mov r30,r24
249 0136 FF27 clr r31
250 0138 83E0 ldi r24,3
251 013a EE0F 1: lsl r30
252 013c FF1F rol r31
253 013e 8A95 dec r24
254 0140 E1F7 brne 1b
255 0142 E050 subi r30,lo8(-(Motor))
256 0144 F040 sbci r31,hi8(-(Motor))
257 0146 8181 ldd r24,Z+1
258 0148 8093 BB00 sts 187,r24
259 014c 85E8 ldi r24,lo8(-123)
260 014e 8093 BC00 sts 188,r24
261 0152 8091 0000 lds r24,motor_write
262 0156 E82F mov r30,r24
263 0158 FF27 clr r31
264 015a EE0F lsl r30
265 015c FF1F rol r31
266 015e EE0F lsl r30
267 0160 FF1F rol r31
268 0162 EE0F lsl r30
269 0164 FF1F rol r31
270 0166 E050 subi r30,lo8(-(Motor))
271 0168 F040 sbci r31,hi8(-(Motor))
272 016a 8081 ld r24,Z
273 016c 80FF sbrs r24,0
274 016e 91C0 rjmp .L25
275 0170 8091 0000 lds r24,motor_write
276 0174 E82F mov r30,r24
277 0176 FF27 clr r31
278 0178 EE0F lsl r30
279 017a FF1F rol r31
280 017c EE0F lsl r30
281 017e FF1F rol r31
282 0180 EE0F lsl r30
283 0182 FF1F rol r31
284 0184 E050 subi r30,lo8(-(Motor))
285 0186 F040 sbci r31,hi8(-(Motor))
286 0188 8281 ldd r24,Z+2
287 018a 8823 tst r24
288 018c 29F0 breq .L21
289 018e 8091 0000 lds r24,RequiredMotors
290 0192 8730 cpi r24,lo8(7)
291 0194 08F4 brsh .+2
292 0196 5FC2 rjmp .L9
293 .L21:
294 0198 8091 0000 lds r24,BLConfig_WriteMask
295 019c 9091 0000 lds r25,(BLConfig_WriteMask)+1
296 01a0 892B or r24,r25
297 01a2 09F0 breq .+2
298 01a4 58C2 rjmp .L9
299 01a6 8091 0000 lds r24,BLConfig_ReadMask
300 01aa 9091 0000 lds r25,(BLConfig_ReadMask)+1
301 01ae 892B or r24,r25
302 01b0 09F0 breq .+2
303 01b2 51C2 rjmp .L9
304 01b4 6EC0 rjmp .L25
305 .L22:
306 01b6 8091 0000 lds r24,motor_write
307 01ba 21E0 ldi r18,lo8(1)
308 01bc 30E0 ldi r19,hi8(1)
309 01be 02C0 rjmp 2f
310 01c0 220F 1: lsl r18
311 01c2 331F rol r19
312 01c4 8A95 2: dec r24
313 01c6 E2F7 brpl 1b
314 01c8 8091 0000 lds r24,BLConfig_ReadMask
315 01cc 9091 0000 lds r25,(BLConfig_ReadMask)+1
316 01d0 2823 and r18,r24
317 01d2 3923 and r19,r25
318 01d4 232B or r18,r19
319 01d6 79F0 breq .L23
320 01d8 8091 0000 lds r24,motor_write
321 01dc E82F mov r30,r24
322 01de FF27 clr r31
323 01e0 EE0F lsl r30
324 01e2 FF1F rol r31
325 01e4 EE0F lsl r30
326 01e6 FF1F rol r31
327 01e8 EE0F lsl r30
328 01ea FF1F rol r31
329 01ec E050 subi r30,lo8(-(Motor))
330 01ee F040 sbci r31,hi8(-(Motor))
331 01f0 80E1 ldi r24,lo8(16)
332 01f2 8483 std Z+4,r24
333 01f4 0DC0 rjmp .L24
334 .L23:
335 01f6 8091 0000 lds r24,motor_write
336 01fa E82F mov r30,r24
337 01fc FF27 clr r31
338 01fe EE0F lsl r30
339 0200 FF1F rol r31
340 0202 EE0F lsl r30
341 0204 FF1F rol r31
342 0206 EE0F lsl r30
343 0208 FF1F rol r31
344 020a E050 subi r30,lo8(-(Motor))
345 020c F040 sbci r31,hi8(-(Motor))
346 020e 1482 std Z+4,__zero_reg__
347 .L24:
348 0210 8091 0000 lds r24,motor_write
349 0214 E82F mov r30,r24
350 0216 FF27 clr r31
351 0218 53E0 ldi r21,3
352 021a EE0F 1: lsl r30
353 021c FF1F rol r31
354 021e 5A95 dec r21
355 0220 E1F7 brne 1b
356 0222 E050 subi r30,lo8(-(Motor))
357 0224 F040 sbci r31,hi8(-(Motor))
358 0226 8481 ldd r24,Z+4
359 0228 282F mov r18,r24
360 022a 3327 clr r19
361 022c 43E0 ldi r20,3
362 022e 220F 1: lsl r18
363 0230 331F rol r19
364 0232 4A95 dec r20
365 0234 E1F7 brne 1b
366 0236 8091 0000 lds r24,motor_write
367 023a E82F mov r30,r24
368 023c FF27 clr r31
369 023e 93E0 ldi r25,3
370 0240 EE0F 1: lsl r30
371 0242 FF1F rol r31
372 0244 9A95 dec r25
373 0246 E1F7 brne 1b
374 0248 E050 subi r30,lo8(-(Motor))
375 024a F040 sbci r31,hi8(-(Motor))
376 024c 8281 ldd r24,Z+2
377 024e 8770 andi r24,lo8(7)
378 0250 822B or r24,r18
379 0252 8093 BB00 sts 187,r24
380 0256 85E8 ldi r24,lo8(-123)
381 0258 8093 BC00 sts 188,r24
382 025c 2091 0000 lds r18,motor_write
383 0260 81E0 ldi r24,lo8(1)
384 0262 90E0 ldi r25,hi8(1)
385 0264 02C0 rjmp 2f
386 0266 880F 1: lsl r24
387 0268 991F rol r25
388 026a 2A95 2: dec r18
389 026c E2F7 brpl 1b
390 026e 2091 0000 lds r18,BLConfig_WriteMask
391 0272 3091 0000 lds r19,(BLConfig_WriteMask)+1
392 0276 8223 and r24,r18
393 0278 9323 and r25,r19
394 027a 892B or r24,r25
395 027c 51F0 breq .L25
396 027e 80E0 ldi r24,lo8(BLConfig)
397 0280 90E0 ldi r25,hi8(BLConfig)
398 0282 9093 0000 sts (pBuff.2)+1,r25
399 0286 8093 0000 sts pBuff.2,r24
400 028a 88E0 ldi r24,lo8(8)
401 028c 8093 0000 sts BuffLen.3,r24
402 0290 E2C1 rjmp .L9
403 .L25:
404 0292 84E0 ldi r24,lo8(4)
405 0294 80C1 rjmp .L82
406 .L27:
407 0296 E091 0000 lds r30,pBuff.2
408 029a F091 0000 lds r31,(pBuff.2)+1
409 029e 8191 ld r24,Z+
410 02a0 8093 BB00 sts 187,r24
411 02a4 85E8 ldi r24,lo8(-123)
412 02a6 8093 BC00 sts 188,r24
413 02aa F093 0000 sts (pBuff.2)+1,r31
414 02ae E093 0000 sts pBuff.2,r30
415 02b2 8091 0000 lds r24,BuffLen.3
416 02b6 8150 subi r24,lo8(-(-1))
417 02b8 8093 0000 sts BuffLen.3,r24
418 02bc 8823 tst r24
419 02be 09F4 brne .+2
420 02c0 CAC1 rjmp .L9
421 02c2 83E0 ldi r24,lo8(3)
422 02c4 68C1 rjmp .L82
423 .L29:
424 02c6 8091 B900 lds r24,185
425 02ca 8033 cpi r24,lo8(48)
426 02cc 51F5 brne .L30
427 02ce 8091 0000 lds r24,missing_motor.0
428 02d2 8823 tst r24
429 02d4 29F4 brne .L31
430 02d6 8091 0000 lds r24,motor_write
431 02da 8F5F subi r24,lo8(-(1))
432 02dc 8093 0000 sts missing_motor.0,r24
433 .L31:
434 02e0 8091 0000 lds r24,motor_write
435 02e4 E82F mov r30,r24
436 02e6 FF27 clr r31
437 02e8 83E0 ldi r24,3
438 02ea EE0F 1: lsl r30
439 02ec FF1F rol r31
440 02ee 8A95 dec r24
441 02f0 E1F7 brne 1b
442 02f2 E050 subi r30,lo8(-(Motor))
443 02f4 F040 sbci r31,hi8(-(Motor))
444 02f6 8381 ldd r24,Z+3
445 02f8 9927 clr r25
446 02fa 8F77 andi r24,lo8(127)
447 02fc 9070 andi r25,hi8(127)
448 02fe 8F37 cpi r24,127
449 0300 9105 cpc r25,__zero_reg__
450 0302 7CF4 brge .L30
451 0304 8091 0000 lds r24,motor_write
452 0308 E82F mov r30,r24
453 030a FF27 clr r31
454 030c EE0F lsl r30
455 030e FF1F rol r31
456 0310 EE0F lsl r30
457 0312 FF1F rol r31
458 0314 EE0F lsl r30
459 0316 FF1F rol r31
460 0318 E050 subi r30,lo8(-(Motor))
461 031a F040 sbci r31,hi8(-(Motor))
462 031c 8381 ldd r24,Z+3
463 031e 8F5F subi r24,lo8(-(1))
464 0320 8383 std Z+3,r24
465 .L30:
466 0322 1092 0000 sts twi_state,__zero_reg__
467 0326 84E9 ldi r24,lo8(-108)
468 0328 8093 BC00 sts 188,r24
469 032c 8AE0 ldi r24,lo8(10)
470 032e 90E0 ldi r25,hi8(10)
471 0330 9093 0000 sts (I2CTimeout)+1,r25
472 0334 8093 0000 sts I2CTimeout,r24
473 0338 8091 0000 lds r24,motor_write
474 033c 8F5F subi r24,lo8(-(1))
475 033e 8093 0000 sts motor_write,r24
476 0342 1092 0000 sts twi_state,__zero_reg__
477 0346 62C1 rjmp .L85
478 .L33:
479 0348 8091 B900 lds r24,185
480 034c 8034 cpi r24,lo8(64)
481 034e A9F1 breq .L34
482 0350 8091 0000 lds r24,motor_read
483 0354 E82F mov r30,r24
484 0356 FF27 clr r31
485 0358 EE0F lsl r30
486 035a FF1F rol r31
487 035c EE0F lsl r30
488 035e FF1F rol r31
489 0360 EE0F lsl r30
490 0362 FF1F rol r31
491 0364 E050 subi r30,lo8(-(Motor))
492 0366 F040 sbci r31,hi8(-(Motor))
493 0368 8381 ldd r24,Z+3
494 036a 8F77 andi r24,lo8(127)
495 036c 8383 std Z+3,r24
496 036e 8091 0000 lds r24,motor_read
497 0372 8F5F subi r24,lo8(-(1))
498 0374 8093 0000 sts motor_read,r24
499 0378 8091 0000 lds r24,motor_read
500 037c 8C30 cpi r24,lo8(12)
501 037e A0F0 brlo .L35
502 0380 1092 0000 sts motor_read,__zero_reg__
503 0384 1092 0000 sts (BLConfig_ReadMask)+1,__zero_reg__
504 0388 1092 0000 sts BLConfig_ReadMask,__zero_reg__
505 038c 8091 0000 lds r24,motor_read_temperature.1
506 0390 8F5F subi r24,lo8(-(1))
507 0392 8093 0000 sts motor_read_temperature.1,r24
508 0396 8C30 cpi r24,lo8(12)
509 0398 38F0 brlo .L35
510 039a 1092 0000 sts motor_read_temperature.1,__zero_reg__
511 039e 8091 0000 lds r24,BLFlags
512 03a2 8D7F andi r24,lo8(-3)
513 03a4 8093 0000 sts BLFlags,r24
514 .L35:
515 03a8 8091 0000 lds r24,BLFlags
516 03ac 8160 ori r24,lo8(1)
517 03ae 8093 0000 sts BLFlags,r24
518 03b2 1092 0000 sts twi_state,__zero_reg__
519 03b6 84E9 ldi r24,lo8(-108)
520 03b8 71C0 rjmp .L78
521 .L34:
522 03ba 8091 0000 lds r24,motor_read
523 03be E82F mov r30,r24
524 03c0 FF27 clr r31
525 03c2 EE0F lsl r30
526 03c4 FF1F rol r31
527 03c6 EE0F lsl r30
528 03c8 FF1F rol r31
529 03ca EE0F lsl r30
530 03cc FF1F rol r31
531 03ce E050 subi r30,lo8(-(Motor))
532 03d0 F040 sbci r31,hi8(-(Motor))
533 03d2 8381 ldd r24,Z+3
534 03d4 8068 ori r24,lo8(-128)
535 03d6 8383 std Z+3,r24
536 03d8 8091 0000 lds r24,motor_read
537 03dc E82F mov r30,r24
538 03de FF27 clr r31
539 03e0 EE0F lsl r30
540 03e2 FF1F rol r31
541 03e4 EE0F lsl r30
542 03e6 FF1F rol r31
543 03e8 EE0F lsl r30
544 03ea FF1F rol r31
545 03ec E050 subi r30,lo8(-(Motor))
546 03ee F040 sbci r31,hi8(-(Motor))
547 03f0 8081 ld r24,Z
548 03f2 80FF sbrs r24,0
549 03f4 2FC0 rjmp .L38
550 03f6 8091 0000 lds r24,motor_read
551 03fa E82F mov r30,r24
552 03fc FF27 clr r31
553 03fe 53E0 ldi r21,3
554 0400 EE0F 1: lsl r30
555 0402 FF1F rol r31
556 0404 5A95 dec r21
557 0406 E1F7 brne 1b
558 0408 E050 subi r30,lo8(-(Motor))
559 040a F040 sbci r31,hi8(-(Motor))
560 040c 8481 ldd r24,Z+4
561 040e 9927 clr r25
562 0410 0097 sbiw r24,0
563 0412 51F0 breq .L41
564 0414 4097 sbiw r24,16
565 0416 D9F5 brne .L44
566 0418 80E0 ldi r24,lo8(BLConfig)
567 041a 90E0 ldi r25,hi8(BLConfig)
568 041c 9093 0000 sts (pBuff.2)+1,r25
569 0420 8093 0000 sts pBuff.2,r24
570 0424 88E0 ldi r24,lo8(8)
571 0426 31C0 rjmp .L77
572 .L41:
573 0428 8091 0000 lds r24,motor_read
574 042c 9927 clr r25
575 042e 43E0 ldi r20,3
576 0430 880F 1: lsl r24
577 0432 991F rol r25
578 0434 4A95 dec r20
579 0436 E1F7 brne 1b
580 0438 8050 subi r24,lo8(-(Motor+5))
581 043a 9040 sbci r25,hi8(-(Motor+5))
582 043c 9093 0000 sts (pBuff.2)+1,r25
583 0440 8093 0000 sts pBuff.2,r24
584 0444 9091 0000 lds r25,motor_read
585 0448 8091 0000 lds r24,motor_read_temperature.1
586 044c 9817 cp r25,r24
587 044e E1F4 brne .L45
588 0450 83E0 ldi r24,lo8(3)
589 0452 1BC0 rjmp .L77
590 .L38:
591 0454 8091 0000 lds r24,motor_read
592 0458 9927 clr r25
593 045a 33E0 ldi r19,3
594 045c 880F 1: lsl r24
595 045e 991F rol r25
596 0460 3A95 dec r19
597 0462 E1F7 brne 1b
598 0464 8050 subi r24,lo8(-(Motor+5))
599 0466 9040 sbci r25,hi8(-(Motor+5))
600 0468 9093 0000 sts (pBuff.2)+1,r25
601 046c 8093 0000 sts pBuff.2,r24
602 0470 8091 0000 lds r24,BLFlags
603 0474 81FD sbrc r24,1
604 0476 06C0 rjmp .L46
605 0478 9091 0000 lds r25,motor_read
606 047c 8091 0000 lds r24,motor_read_temperature.1
607 0480 9817 cp r25,r24
608 0482 11F4 brne .L45
609 .L46:
610 0484 82E0 ldi r24,lo8(2)
611 0486 01C0 rjmp .L77
612 .L45:
613 0488 81E0 ldi r24,lo8(1)
614 .L77:
615 048a 8093 0000 sts BuffLen.3,r24
616 .L44:
617 048e 8091 0000 lds r24,BuffLen.3
618 0492 8130 cpi r24,lo8(1)
619 0494 11F4 brne .L48
620 0496 85E8 ldi r24,lo8(-123)
621 0498 01C0 rjmp .L78
622 .L48:
623 049a 85EC ldi r24,lo8(-59)
624 .L78:
625 049c 8093 BC00 sts 188,r24
626 04a0 8091 0000 lds r24,missing_motor.0
627 04a4 8093 0000 sts MissingMotor,r24
628 04a8 1092 0000 sts missing_motor.0,__zero_reg__
629 04ac D4C0 rjmp .L9
630 .L50:
631 04ae E091 0000 lds r30,pBuff.2
632 04b2 F091 0000 lds r31,(pBuff.2)+1
633 04b6 8091 BB00 lds r24,187
634 04ba 8083 st Z,r24
635 04bc 8091 0000 lds r24,pBuff.2
636 04c0 9091 0000 lds r25,(pBuff.2)+1
637 04c4 0196 adiw r24,1
638 04c6 9093 0000 sts (pBuff.2)+1,r25
639 04ca 8093 0000 sts pBuff.2,r24
640 04ce 8091 0000 lds r24,BuffLen.3
641 04d2 8150 subi r24,lo8(-(-1))
642 04d4 8093 0000 sts BuffLen.3,r24
643 04d8 8230 cpi r24,lo8(2)
644 04da 10F0 brlo .L51
645 04dc 85EC ldi r24,lo8(-59)
646 04de 58C0 rjmp .L79
647 .L51:
648 04e0 8130 cpi r24,lo8(1)
649 04e2 11F4 brne .L53
650 04e4 85E8 ldi r24,lo8(-123)
651 04e6 54C0 rjmp .L79
652 .L53:
653 04e8 8091 0000 lds r24,BLFlags
654 04ec 81FF sbrs r24,1
655 04ee 2DC0 rjmp .L55
656 04f0 8091 0000 lds r24,FCFlags
657 04f4 80FD sbrc r24,0
658 04f6 1DC0 rjmp .L56
659 04f8 8091 0000 lds r24,motor_read
660 04fc E82F mov r30,r24
661 04fe FF27 clr r31
662 0500 23E0 ldi r18,3
663 0502 EE0F 1: lsl r30
664 0504 FF1F rol r31
665 0506 2A95 dec r18
666 0508 E1F7 brne 1b
667 050a E050 subi r30,lo8(-(Motor))
668 050c F040 sbci r31,hi8(-(Motor))
669 050e 8681 ldd r24,Z+6
670 0510 8A3F cpi r24,lo8(-6)
671 0512 79F4 brne .L56
672 0514 8091 0000 lds r24,motor_read
673 0518 E82F mov r30,r24
674 051a FF27 clr r31
675 051c 93E0 ldi r25,3
676 051e EE0F 1: lsl r30
677 0520 FF1F rol r31
678 0522 9A95 dec r25
679 0524 E1F7 brne 1b
680 0526 E050 subi r30,lo8(-(Motor))
681 0528 F040 sbci r31,hi8(-(Motor))
682 052a 8081 ld r24,Z
683 052c 8160 ori r24,lo8(1)
684 052e 8083 st Z,r24
685 0530 0CC0 rjmp .L55
686 .L56:
687 0532 8091 0000 lds r24,motor_read
688 0536 E82F mov r30,r24
689 0538 FF27 clr r31
690 053a 83E0 ldi r24,3
691 053c EE0F 1: lsl r30
692 053e FF1F rol r31
693 0540 8A95 dec r24
694 0542 E1F7 brne 1b
695 0544 E050 subi r30,lo8(-(Motor))
696 0546 F040 sbci r31,hi8(-(Motor))
697 0548 1082 st Z,__zero_reg__
698 .L55:
699 054a 8091 0000 lds r24,motor_read
700 054e 8F5F subi r24,lo8(-(1))
701 0550 8093 0000 sts motor_read,r24
702 0554 8091 0000 lds r24,motor_read
703 0558 8C30 cpi r24,lo8(12)
704 055a A0F0 brlo .L58
705 055c 1092 0000 sts motor_read,__zero_reg__
706 0560 1092 0000 sts (BLConfig_ReadMask)+1,__zero_reg__
707 0564 1092 0000 sts BLConfig_ReadMask,__zero_reg__
708 0568 8091 0000 lds r24,motor_read_temperature.1
709 056c 8F5F subi r24,lo8(-(1))
710 056e 8093 0000 sts motor_read_temperature.1,r24
711 0572 8C30 cpi r24,lo8(12)
712 0574 38F0 brlo .L58
713 0576 1092 0000 sts motor_read_temperature.1,__zero_reg__
714 057a 8091 0000 lds r24,BLFlags
715 057e 8D7F andi r24,lo8(-3)
716 0580 8093 0000 sts BLFlags,r24
717 .L58:
718 0584 1092 0000 sts twi_state,__zero_reg__
719 0588 84E9 ldi r24,lo8(-108)
720 058a 8093 BC00 sts 188,r24
721 058e 49C0 rjmp .L81
722 .L79:
723 0590 8093 BC00 sts 188,r24
724 0594 86E0 ldi r24,lo8(6)
725 .L82:
726 0596 8093 0000 sts twi_state,r24
727 059a 5DC0 rjmp .L9
728 .L60:
729 059c 88E9 ldi r24,lo8(-104)
730 059e C4CD rjmp .L84
731 .L61:
732 05a0 8091 0000 lds r24,dac_channel
733 05a4 880F lsl r24
734 05a6 805F subi r24,lo8(-(16))
735 05a8 BFCD rjmp .L84
736 .L62:
737 05aa 8091 0000 lds r24,dac_channel
738 05ae 9927 clr r25
739 05b0 8130 cpi r24,1
740 05b2 9105 cpc r25,__zero_reg__
741 05b4 61F0 breq .L65
742 05b6 8230 cpi r24,2
743 05b8 9105 cpc r25,__zero_reg__
744 05ba 1CF4 brge .L67
745 05bc 892B or r24,r25
746 05be 21F0 breq .L64
747 05c0 4AC0 rjmp .L9
748 .L67:
749 05c2 0297 sbiw r24,2
750 05c4 39F0 breq .L66
751 05c6 47C0 rjmp .L9
752 .L64:
753 05c8 8091 0000 lds r24,AnalogOffsetNick
754 05cc ADCD rjmp .L84
755 .L65:
756 05ce 8091 0000 lds r24,AnalogOffsetRoll
757 05d2 AACD rjmp .L84
758 .L66:
759 05d4 8091 0000 lds r24,AnalogOffsetGier
760 05d8 A7CD rjmp .L84
761 .L68:
762 05da 80E8 ldi r24,lo8(-128)
763 05dc A5CD rjmp .L84
764 .L69:
765 05de 1092 0000 sts twi_state,__zero_reg__
766 05e2 84E9 ldi r24,lo8(-108)
767 05e4 8093 BC00 sts 188,r24
768 05e8 8AE0 ldi r24,lo8(10)
769 05ea 90E0 ldi r25,hi8(10)
770 05ec 9093 0000 sts (I2CTimeout)+1,r25
771 05f0 8093 0000 sts I2CTimeout,r24
772 05f4 8091 0000 lds r24,dac_channel
773 05f8 8230 cpi r24,lo8(2)
774 05fa 88F4 brsh .L70
775 05fc 8091 0000 lds r24,dac_channel
776 0600 8F5F subi r24,lo8(-(1))
777 0602 8093 0000 sts dac_channel,r24
778 0606 82E1 ldi r24,lo8(18)
779 0608 8093 0000 sts twi_state,r24
780 .L85:
781 060c 8091 0000 lds r24,BLFlags
782 0610 8E7F andi r24,lo8(-2)
783 0612 8093 0000 sts BLFlags,r24
784 0616 85EA ldi r24,lo8(-91)
785 .L80:
786 0618 8093 BC00 sts 188,r24
787 061c 1CC0 rjmp .L9
788 .L70:
789 061e 1092 0000 sts dac_channel,__zero_reg__
790 .L81:
791 0622 8091 0000 lds r24,BLFlags
792 0626 8160 ori r24,lo8(1)
793 0628 8093 0000 sts BLFlags,r24
794 062c 14C0 rjmp .L9
795 .L72:
796 062e 1092 0000 sts twi_state,__zero_reg__
797 0632 84E9 ldi r24,lo8(-108)
798 0634 8093 BC00 sts 188,r24
799 0638 8091 0000 lds r24,BLFlags
800 063c 8160 ori r24,lo8(1)
801 063e 8093 0000 sts BLFlags,r24
802 0642 8AE0 ldi r24,lo8(10)
803 0644 90E0 ldi r25,hi8(10)
804 0646 9093 0000 sts (I2CTimeout)+1,r25
805 064a 8093 0000 sts I2CTimeout,r24
806 064e 1092 0000 sts motor_write,__zero_reg__
807 0652 1092 0000 sts motor_read,__zero_reg__
808 .L9:
809 /* epilogue: frame size=0 */
810 0656 FF91 pop r31
811 0658 EF91 pop r30
812 065a 9F91 pop r25
813 065c 8F91 pop r24
814 065e 5F91 pop r21
815 0660 4F91 pop r20
816 0662 3F91 pop r19
817 0664 2F91 pop r18
818 0666 0F90 pop __tmp_reg__
819 0668 0FBE out __SREG__,__tmp_reg__
820 066a 0F90 pop __tmp_reg__
821 066c 1F90 pop __zero_reg__
822 066e 1895 reti
823 /* epilogue end (size=13) */
824 /* function __vector_26 size 779 (753) */
826 .global I2C_WriteBLConfig
828 I2C_WriteBLConfig:
829 /* prologue: frame size=0 */
830 0670 1F93 push r17
831 0672 CF93 push r28
832 0674 DF93 push r29
833 /* prologue end (size=3) */
834 0676 182F mov r17,r24
835 0678 8091 0000 lds r24,MotorenEin
836 067c 8823 tst r24
837 067e 21F4 brne .L88
838 0680 8091 0000 lds r24,PC_MotortestActive
839 0684 8823 tst r24
840 0686 19F0 breq .L87
841 .L88:
842 0688 81E0 ldi r24,lo8(1)
843 068a 90E0 ldi r25,hi8(1)
844 068c 97C0 rjmp .L86
845 .L87:
846 068e 1D30 cpi r17,lo8(13)
847 0690 08F0 brlo .+2
848 0692 92C0 rjmp .L115
849 0694 1123 tst r17
850 0696 B1F0 breq .L90
851 0698 E12F mov r30,r17
852 069a FF27 clr r31
853 069c 23E0 ldi r18,3
854 069e EE0F 1: lsl r30
855 06a0 FF1F rol r31
856 06a2 2A95 dec r18
857 06a4 E1F7 brne 1b
858 06a6 E050 subi r30,lo8(-(Motor))
859 06a8 F040 sbci r31,hi8(-(Motor))
860 06aa 3597 sbiw r30,5
861 06ac 8081 ld r24,Z
862 06ae 3596 adiw r30,5
863 06b0 8823 tst r24
864 06b2 0CF0 brlt .+2
865 06b4 81C0 rjmp .L115
866 06b6 3897 sbiw r30,8
867 06b8 8081 ld r24,Z
868 06ba 80FD sbrc r24,0
869 06bc 03C0 rjmp .L90
870 06be 83E0 ldi r24,lo8(3)
871 06c0 90E0 ldi r25,hi8(3)
872 06c2 7CC0 rjmp .L86
873 .L90:
874 06c4 8091 0000 lds r24,BLConfig
875 06c8 8230 cpi r24,lo8(2)
876 06ca 19F0 breq .L93
877 06cc 84E0 ldi r24,lo8(4)
878 06ce 90E0 ldi r25,hi8(4)
879 06d0 75C0 rjmp .L86
880 .L93:
881 06d2 67E0 ldi r22,lo8(7)
882 06d4 70E0 ldi r23,hi8(7)
883 06d6 80E0 ldi r24,lo8(BLConfig)
884 06d8 90E0 ldi r25,hi8(BLConfig)
885 06da 0E94 0000 call RAM_Checksum
886 06de 9091 0000 lds r25,BLConfig+7
887 06e2 8917 cp r24,r25
888 06e4 19F0 breq .L94
889 06e6 85E0 ldi r24,lo8(5)
890 06e8 90E0 ldi r25,hi8(5)
891 06ea 68C0 rjmp .L86
892 .L94:
893 06ec 80ED ldi r24,lo8(2000)
894 06ee 97E0 ldi r25,hi8(2000)
895 06f0 0E94 0000 call SetDelay
896 06f4 EC01 movw r28,r24
897 .L95:
898 06f6 8091 0000 lds r24,BLFlags
899 06fa 80FD sbrc r24,0
900 06fc 05C0 rjmp .L96
901 06fe CE01 movw r24,r28
902 0700 0E94 0000 call CheckDelay
903 0704 8823 tst r24
904 0706 B9F3 breq .L95
905 .L96:
906 0708 1123 tst r17
907 070a 19F4 brne .L98
908 070c 8FEF ldi r24,lo8(255)
909 070e 90E0 ldi r25,hi8(255)
910 0710 0BC0 rjmp .L114
911 .L98:
912 0712 212F mov r18,r17
913 0714 3327 clr r19
914 0716 2150 subi r18,lo8(-(-1))
915 0718 3040 sbci r19,hi8(-(-1))
916 071a 81E0 ldi r24,lo8(1)
917 071c 90E0 ldi r25,hi8(1)
918 071e 02C0 rjmp 2f
919 0720 880F 1: lsl r24
920 0722 991F rol r25
921 0724 2A95 2: dec r18
922 0726 E2F7 brpl 1b
923 .L114:
924 0728 9093 0000 sts (BLConfig_WriteMask)+1,r25
925 072c 8093 0000 sts BLConfig_WriteMask,r24
926 0730 A1E0 ldi r26,lo8(1)
927 0732 B0E0 ldi r27,hi8(1)
928 0734 E0E0 ldi r30,lo8(Motor)
929 0736 F0E0 ldi r31,hi8(Motor)
930 0738 40E0 ldi r20,lo8(0)
931 073a 50E0 ldi r21,hi8(0)
932 073c 6BE0 ldi r22,lo8(11)
933 .L104:
934 073e CD01 movw r24,r26
935 0740 042E mov r0,r20
936 0742 02C0 rjmp 2f
937 0744 880F 1: lsl r24
938 0746 991F rol r25
939 0748 0A94 2: dec r0
940 074a E2F7 brpl 1b
941 074c 2091 0000 lds r18,BLConfig_WriteMask
942 0750 3091 0000 lds r19,(BLConfig_WriteMask)+1
943 0754 8223 and r24,r18
944 0756 9323 and r25,r19
945 0758 892B or r24,r25
946 075a 11F0 breq .L102
947 075c 1182 std Z+1,__zero_reg__
948 075e 1282 std Z+2,__zero_reg__
949 .L102:
950 0760 6150 subi r22,lo8(-(-1))
951 0762 4F5F subi r20,lo8(-(1))
952 0764 5F4F sbci r21,hi8(-(1))
953 0766 3896 adiw r30,8
954 0768 67FF sbrs r22,7
955 076a E9CF rjmp .L104
956 076c 1092 0000 sts motor_write,__zero_reg__
957 .L105:
958 0770 1092 0000 sts twi_state,__zero_reg__
959 0774 8091 0000 lds r24,BLFlags
960 0778 8E7F andi r24,lo8(-2)
961 077a 8093 0000 sts BLFlags,r24
962 077e 85EA ldi r24,lo8(-91)
963 0780 8093 BC00 sts 188,r24
964 .L108:
965 0784 8091 0000 lds r24,BLFlags
966 0788 80FD sbrc r24,0
967 078a 05C0 rjmp .L109
968 078c CE01 movw r24,r28
969 078e 0E94 0000 call CheckDelay
970 0792 8823 tst r24
971 0794 B9F3 breq .L108
972 .L109:
973 0796 8091 0000 lds r24,BLConfig_WriteMask
974 079a 9091 0000 lds r25,(BLConfig_WriteMask)+1
975 079e 892B or r24,r25
976 07a0 29F0 breq .L106
977 07a2 CE01 movw r24,r28
978 07a4 0E94 0000 call CheckDelay
979 07a8 8823 tst r24
980 07aa 11F3 breq .L105
981 .L106:
982 07ac 8091 0000 lds r24,BLConfig_WriteMask
983 07b0 9091 0000 lds r25,(BLConfig_WriteMask)+1
984 07b4 0097 sbiw r24,0
985 07b6 11F0 breq .L86
986 .L115:
987 07b8 82E0 ldi r24,lo8(2)
988 07ba 90E0 ldi r25,hi8(2)
989 .L86:
990 /* epilogue: frame size=0 */
991 07bc DF91 pop r29
992 07be CF91 pop r28
993 07c0 1F91 pop r17
994 07c2 0895 ret
995 /* epilogue end (size=4) */
996 /* function I2C_WriteBLConfig size 172 (165) */
998 .global I2C_ReadBLConfig
1000 I2C_ReadBLConfig:
1001 /* prologue: frame size=0 */
1002 07c4 0F93 push r16
1003 07c6 1F93 push r17
1004 07c8 CF93 push r28
1005 07ca DF93 push r29
1006 /* prologue end (size=4) */
1007 07cc 982F mov r25,r24
1008 07ce 8091 0000 lds r24,MotorenEin
1009 07d2 8823 tst r24
1010 07d4 21F4 brne .L118
1011 07d6 8091 0000 lds r24,PC_MotortestActive
1012 07da 8823 tst r24
1013 07dc 19F0 breq .L117
1014 .L118:
1015 07de 81E0 ldi r24,lo8(1)
1016 07e0 90E0 ldi r25,hi8(1)
1017 07e2 92C0 rjmp .L116
1018 .L117:
1019 07e4 9D30 cpi r25,lo8(13)
1020 07e6 A0F4 brsh .L141
1021 07e8 9923 tst r25
1022 07ea 19F4 brne .L120
1023 07ec 86E0 ldi r24,lo8(6)
1024 07ee 90E0 ldi r25,hi8(6)
1025 07f0 8BC0 rjmp .L116
1026 .L120:
1027 07f2 C92F mov r28,r25
1028 07f4 DD27 clr r29
1029 07f6 FE01 movw r30,r28
1030 07f8 33E0 ldi r19,3
1031 07fa EE0F 1: lsl r30
1032 07fc FF1F rol r31
1033 07fe 3A95 dec r19
1034 0800 E1F7 brne 1b
1035 0802 E050 subi r30,lo8(-(Motor))
1036 0804 F040 sbci r31,hi8(-(Motor))
1037 0806 3597 sbiw r30,5
1038 0808 8081 ld r24,Z
1039 080a 3596 adiw r30,5
1040 080c 87FD sbrc r24,7
1041 080e 03C0 rjmp .L121
1042 .L141:
1043 0810 82E0 ldi r24,lo8(2)
1044 0812 90E0 ldi r25,hi8(2)
1045 0814 79C0 rjmp .L116
1046 .L121:
1047 0816 3897 sbiw r30,8
1048 0818 8081 ld r24,Z
1049 081a 80FD sbrc r24,0
1050 081c 03C0 rjmp .L122
1051 081e 83E0 ldi r24,lo8(3)
1052 0820 90E0 ldi r25,hi8(3)
1053 0822 72C0 rjmp .L116
1054 .L122:
1055 0824 80ED ldi r24,lo8(2000)
1056 0826 97E0 ldi r25,hi8(2000)
1057 0828 0E94 0000 call SetDelay
1058 082c 8C01 movw r16,r24
1059 .L123:
1060 082e 8091 0000 lds r24,BLFlags
1061 0832 80FD sbrc r24,0
1062 0834 05C0 rjmp .L124
1063 0836 C801 movw r24,r16
1064 0838 0E94 0000 call CheckDelay
1065 083c 8823 tst r24
1066 083e B9F3 breq .L123
1067 .L124:
1068 0840 2197 sbiw r28,1
1069 0842 21E0 ldi r18,lo8(1)
1070 0844 30E0 ldi r19,hi8(1)
1071 0846 C901 movw r24,r18
1072 0848 02C0 rjmp 2f
1073 084a 880F 1: lsl r24
1074 084c 991F rol r25
1075 084e CA95 2: dec r28
1076 0850 E2F7 brpl 1b
1077 0852 9093 0000 sts (BLConfig_ReadMask)+1,r25
1078 0856 8093 0000 sts BLConfig_ReadMask,r24
1079 085a D901 movw r26,r18
1080 085c E0E0 ldi r30,lo8(Motor)
1081 085e F0E0 ldi r31,hi8(Motor)
1082 0860 40E0 ldi r20,lo8(0)
1083 0862 50E0 ldi r21,hi8(0)
1084 0864 6BE0 ldi r22,lo8(11)
1085 .L130:
1086 0866 CD01 movw r24,r26
1087 0868 042E mov r0,r20
1088 086a 02C0 rjmp 2f
1089 086c 880F 1: lsl r24
1090 086e 991F rol r25
1091 0870 0A94 2: dec r0
1092 0872 E2F7 brpl 1b
1093 0874 2091 0000 lds r18,BLConfig_ReadMask
1094 0878 3091 0000 lds r19,(BLConfig_ReadMask)+1
1095 087c 8223 and r24,r18
1096 087e 9323 and r25,r19
1097 0880 892B or r24,r25
1098 0882 11F0 breq .L128
1099 0884 1182 std Z+1,__zero_reg__
1100 0886 1282 std Z+2,__zero_reg__
1101 .L128:
1102 0888 6150 subi r22,lo8(-(-1))
1103 088a 4F5F subi r20,lo8(-(1))
1104 088c 5F4F sbci r21,hi8(-(1))
1105 088e 3896 adiw r30,8
1106 0890 67FF sbrs r22,7
1107 0892 E9CF rjmp .L130
1108 0894 1092 0000 sts motor_read,__zero_reg__
1109 0898 1092 0000 sts BLConfig,__zero_reg__
1110 089c 1092 0000 sts BLConfig+7,__zero_reg__
1111 .L131:
1112 08a0 1092 0000 sts twi_state,__zero_reg__
1113 08a4 8091 0000 lds r24,BLFlags
1114 08a8 8E7F andi r24,lo8(-2)
1115 08aa 8093 0000 sts BLFlags,r24
1116 08ae 85EA ldi r24,lo8(-91)
1117 08b0 8093 BC00 sts 188,r24
1118 .L134:
1119 08b4 8091 0000 lds r24,BLFlags
1120 08b8 80FD sbrc r24,0
1121 08ba 05C0 rjmp .L135
1122 08bc C801 movw r24,r16
1123 08be 0E94 0000 call CheckDelay
1124 08c2 8823 tst r24
1125 08c4 B9F3 breq .L134
1126 .L135:
1127 08c6 8091 0000 lds r24,BLConfig_ReadMask
1128 08ca 9091 0000 lds r25,(BLConfig_ReadMask)+1
1129 08ce 892B or r24,r25
1130 08d0 29F0 breq .L132
1131 08d2 C801 movw r24,r16
1132 08d4 0E94 0000 call CheckDelay
1133 08d8 8823 tst r24
1134 08da 11F3 breq .L131
1135 .L132:
1136 08dc 8091 0000 lds r24,BLConfig
1137 08e0 8230 cpi r24,lo8(2)
1138 08e2 19F0 breq .L137
1139 08e4 84E0 ldi r24,lo8(4)
1140 08e6 90E0 ldi r25,hi8(4)
1141 08e8 0FC0 rjmp .L116
1142 .L137:
1143 08ea 67E0 ldi r22,lo8(7)
1144 08ec 70E0 ldi r23,hi8(7)
1145 08ee 80E0 ldi r24,lo8(BLConfig)
1146 08f0 90E0 ldi r25,hi8(BLConfig)
1147 08f2 0E94 0000 call RAM_Checksum
1148 08f6 9091 0000 lds r25,BLConfig+7
1149 08fa 8917 cp r24,r25
1150 08fc 19F0 breq .L138
1151 08fe 85E0 ldi r24,lo8(5)
1152 0900 90E0 ldi r25,hi8(5)
1153 0902 02C0 rjmp .L116
1154 .L138:
1155 0904 80E0 ldi r24,lo8(0)
1156 0906 90E0 ldi r25,hi8(0)
1157 .L116:
1158 /* epilogue: frame size=0 */
1159 0908 DF91 pop r29
1160 090a CF91 pop r28
1161 090c 1F91 pop r17
1162 090e 0F91 pop r16
1163 0910 0895 ret
1164 /* epilogue end (size=5) */
1165 /* function I2C_ReadBLConfig size 168 (159) */
1167 .comm Motor,96,1
1168 .comm BLConfig,8,1
1169 /* File "twimaster.c": code 1193 = 0x04a9 (1149), prologues 20, epilogues 24 */
8 .text
9 .global I2C_Init
11 I2C_Init:
12 /* prologue: function */
13 /* frame size = 0 */
14 0000 9FB7 in r25,__SREG__
15 /* #APP */
16 ; 100 "twimaster.c" 1
17 0002 F894 cli
18 ; 0 "" 2
19 /* #NOAPP */
20 0004 3998 cbi 39-32,1
21 0006 389A sbi 39-32,0
22 0008 88B1 in r24,40-32
23 000a 8360 ori r24,lo8(3)
24 000c 88B9 out 40-32,r24
25 000e 8091 B900 lds r24,185
26 0012 8C7F andi r24,lo8(-4)
27 0014 8093 B900 sts 185,r24
28 0018 8AE2 ldi r24,lo8(42)
29 001a 8093 B800 sts 184,r24
30 001e 1092 0000 sts twi_state,__zero_reg__
31 0022 1092 0000 sts motor_write,__zero_reg__
32 0026 1092 0000 sts motor_read,__zero_reg__
33 002a E0E0 ldi r30,lo8(Motor)
34 002c F0E0 ldi r31,hi8(Motor)
35 .L2:
36 002e 1082 st Z,__zero_reg__
37 0030 1182 std Z+1,__zero_reg__
38 0032 1282 std Z+2,__zero_reg__
39 0034 1382 std Z+3,__zero_reg__
40 0036 1482 std Z+4,__zero_reg__
41 0038 1582 std Z+5,__zero_reg__
42 003a 1682 std Z+6,__zero_reg__
43 003c 1782 std Z+7,__zero_reg__
44 003e 3896 adiw r30,8
45 0040 80E0 ldi r24,hi8(Motor+96)
46 0042 E030 cpi r30,lo8(Motor+96)
47 0044 F807 cpc r31,r24
48 0046 01F4 brne .L2
49 0048 9FBF out __SREG__,r25
50 /* epilogue start */
51 004a 0895 ret
53 .global I2C_Reset
55 I2C_Reset:
56 004c EF92 push r14
57 004e FF92 push r15
58 0050 0F93 push r16
59 0052 1F93 push r17
60 /* prologue: function */
61 /* frame size = 0 */
62 0054 1092 0000 sts twi_state,__zero_reg__
63 0058 8CEB ldi r24,lo8(188)
64 005a E82E mov r14,r24
65 005c F12C mov r15,__zero_reg__
66 005e 84E9 ldi r24,lo8(-108)
67 0060 F701 movw r30,r14
68 0062 8083 st Z,r24
69 0064 1092 0000 sts motor_write,__zero_reg__
70 0068 1092 0000 sts motor_read,__zero_reg__
71 006c 80E8 ldi r24,lo8(-128)
72 006e 8083 st Z,r24
73 0070 1092 BD00 sts 189,__zero_reg__
74 0074 1092 BA00 sts 186,__zero_reg__
75 0078 0BEB ldi r16,lo8(187)
76 007a 10E0 ldi r17,hi8(187)
77 007c F801 movw r30,r16
78 007e 1082 st Z,__zero_reg__
79 0080 1092 B900 sts 185,__zero_reg__
80 0084 1092 B800 sts 184,__zero_reg__
81 0088 0E94 0000 call I2C_Init
82 008c F801 movw r30,r16
83 008e 1082 st Z,__zero_reg__
84 0090 85E8 ldi r24,lo8(-123)
85 0092 F701 movw r30,r14
86 0094 8083 st Z,r24
87 0096 8091 0000 lds r24,BLFlags
88 009a 8260 ori r24,lo8(2)
89 009c 8093 0000 sts BLFlags,r24
90 /* epilogue start */
91 00a0 1F91 pop r17
92 00a2 0F91 pop r16
93 00a4 FF90 pop r15
94 00a6 EF90 pop r14
95 00a8 0895 ret
97 .global __vector_26
99 __vector_26:
100 00aa 1F92 push __zero_reg__
101 00ac 0F92 push r0
102 00ae 0FB6 in r0,__SREG__
103 00b0 0F92 push r0
104 00b2 1124 clr __zero_reg__
105 00b4 2F93 push r18
106 00b6 3F93 push r19
107 00b8 4F93 push r20
108 00ba 8F93 push r24
109 00bc 9F93 push r25
110 00be AF93 push r26
111 00c0 BF93 push r27
112 00c2 EF93 push r30
113 00c4 FF93 push r31
114 /* prologue: Signal */
115 /* frame size = 0 */
116 00c6 8091 0000 lds r24,twi_state
117 00ca 8F5F subi r24,lo8(-(1))
118 00cc 8093 0000 sts twi_state,r24
119 00d0 8150 subi r24,lo8(-(-1))
120 00d2 E82F mov r30,r24
121 00d4 F0E0 ldi r31,lo8(0)
122 00d6 E731 cpi r30,23
123 00d8 F105 cpc r31,__zero_reg__
124 00da 00F0 brlo .+2
125 00dc 00C0 rjmp .L8
126 00de E050 subi r30,lo8(-(gs(.L21)))
127 00e0 F040 sbci r31,hi8(-(gs(.L21)))
128 00e2 0C94 0000 jmp __tablejump2__
129 .data
130 .section .progmem.gcc_sw_table, "a", @progbits
131 .p2align 1
132 .L21:
133 .data
134 .section .progmem.gcc_sw_table, "a", @progbits
135 .p2align 1
136 0000 0000 .word gs(.L55)
137 0002 0000 .word gs(.L10)
138 0004 0000 .word gs(.L11)
139 0006 0000 .word gs(.L12)
140 0008 0000 .word gs(.L13)
141 000a 0000 .word gs(.L14)
142 000c 0000 .word gs(.L15)
143 000e 0000 .word gs(.L8)
144 0010 0000 .word gs(.L8)
145 0012 0000 .word gs(.L8)
146 0014 0000 .word gs(.L8)
147 0016 0000 .word gs(.L8)
148 0018 0000 .word gs(.L8)
149 001a 0000 .word gs(.L8)
150 001c 0000 .word gs(.L8)
151 001e 0000 .word gs(.L8)
152 0020 0000 .word gs(.L8)
153 0022 0000 .word gs(.L8)
154 0024 0000 .word gs(.L16)
155 0026 0000 .word gs(.L17)
156 0028 0000 .word gs(.L18)
157 002a 0000 .word gs(.L19)
158 002c 0000 .word gs(.L20)
159 .text
160 .L23:
161 00e6 8091 0000 lds r24,motor_write
162 00ea 8F5F subi r24,lo8(-(1))
163 00ec 8093 0000 sts motor_write,r24
164 .L55:
165 00f0 E091 0000 lds r30,motor_write
166 00f4 F0E0 ldi r31,lo8(0)
167 00f6 EE0F lsl r30
168 00f8 FF1F rol r31
169 00fa EE0F lsl r30
170 00fc FF1F rol r31
171 00fe E050 subi r30,lo8(-(Mixer))
172 0100 F040 sbci r31,hi8(-(Mixer))
173 0102 8585 ldd r24,Z+13
174 0104 1816 cp __zero_reg__,r24
175 0106 04F0 brlt .L22
176 0108 8091 0000 lds r24,motor_write
177 010c 8C30 cpi r24,lo8(12)
178 010e 00F0 brlo .L23
179 .L22:
180 0110 8091 0000 lds r24,motor_write
181 0114 8C30 cpi r24,lo8(12)
182 0116 00F0 brlo .L24
183 0118 1092 0000 sts (BLConfig_WriteMask)+1,__zero_reg__
184 011c 1092 0000 sts BLConfig_WriteMask,__zero_reg__
185 0120 1092 0000 sts motor_write,__zero_reg__
186 0124 85E0 ldi r24,lo8(5)
187 0126 8093 0000 sts twi_state,r24
188 012a 8091 0000 lds r24,motor_read
189 012e 880F lsl r24
190 0130 8D5A subi r24,lo8(-(83))
191 0132 00C0 rjmp .L63
192 .L24:
193 0134 8091 0000 lds r24,motor_write
194 0138 880F lsl r24
195 013a 8E5A subi r24,lo8(-(82))
196 .L63:
197 013c 8093 BB00 sts 187,r24
198 0140 85E8 ldi r24,lo8(-123)
199 0142 00C0 rjmp .L59
200 .L10:
201 0144 E091 0000 lds r30,motor_write
202 0148 F0E0 ldi r31,lo8(0)
203 014a 93E0 ldi r25,3
204 014c EE0F 1: lsl r30
205 014e FF1F rol r31
206 0150 9A95 dec r25
207 0152 01F4 brne 1b
208 0154 E050 subi r30,lo8(-(Motor))
209 0156 F040 sbci r31,hi8(-(Motor))
210 0158 8181 ldd r24,Z+1
211 015a 8093 BB00 sts 187,r24
212 015e 85E8 ldi r24,lo8(-123)
213 0160 8093 BC00 sts 188,r24
214 0164 E091 0000 lds r30,motor_write
215 0168 F0E0 ldi r31,lo8(0)
216 016a 83E0 ldi r24,3
217 016c EE0F 1: lsl r30
218 016e FF1F rol r31
219 0170 8A95 dec r24
220 0172 01F4 brne 1b
221 0174 E050 subi r30,lo8(-(Motor))
222 0176 F040 sbci r31,hi8(-(Motor))
223 0178 8081 ld r24,Z
224 017a 80FF sbrs r24,0
225 017c 00C0 rjmp .L30
226 .L26:
227 017e E091 0000 lds r30,motor_write
228 0182 F0E0 ldi r31,lo8(0)
229 0184 B3E0 ldi r27,3
230 0186 EE0F 1: lsl r30
231 0188 FF1F rol r31
232 018a BA95 dec r27
233 018c 01F4 brne 1b
234 018e E050 subi r30,lo8(-(Motor))
235 0190 F040 sbci r31,hi8(-(Motor))
236 0192 8281 ldd r24,Z+2
237 0194 8823 tst r24
238 0196 01F0 breq .L27
239 0198 8091 0000 lds r24,RequiredMotors
240 019c 8730 cpi r24,lo8(7)
241 019e 00F4 brsh .+2
242 01a0 00C0 rjmp .L54
243 .L27:
244 01a2 8091 0000 lds r24,BLConfig_WriteMask
245 01a6 9091 0000 lds r25,(BLConfig_WriteMask)+1
246 01aa 892B or r24,r25
247 01ac 01F0 breq .+2
248 01ae 00C0 rjmp .L54
249 01b0 8091 0000 lds r24,BLConfig_ReadMask
250 01b4 9091 0000 lds r25,(BLConfig_ReadMask)+1
251 01b8 892B or r24,r25
252 01ba 01F0 breq .+2
253 01bc 00C0 rjmp .L54
254 01be 00C0 rjmp .L30
255 .L11:
256 01c0 4091 0000 lds r20,motor_write
257 01c4 2091 0000 lds r18,BLConfig_ReadMask
258 01c8 3091 0000 lds r19,(BLConfig_ReadMask)+1
259 01cc 81E0 ldi r24,lo8(1)
260 01ce 90E0 ldi r25,hi8(1)
261 01d0 00C0 rjmp 2f
262 01d2 880F 1: lsl r24
263 01d4 991F rol r25
264 01d6 4A95 2: dec r20
265 01d8 02F4 brpl 1b
266 01da 8223 and r24,r18
267 01dc 9323 and r25,r19
268 01de 892B or r24,r25
269 01e0 01F0 breq .L28
270 01e2 E091 0000 lds r30,motor_write
271 01e6 F0E0 ldi r31,lo8(0)
272 01e8 A3E0 ldi r26,3
273 01ea EE0F 1: lsl r30
274 01ec FF1F rol r31
275 01ee AA95 dec r26
276 01f0 01F4 brne 1b
277 01f2 E050 subi r30,lo8(-(Motor))
278 01f4 F040 sbci r31,hi8(-(Motor))
279 01f6 80E1 ldi r24,lo8(16)
280 01f8 8483 std Z+4,r24
281 01fa 00C0 rjmp .L29
282 .L28:
283 01fc E091 0000 lds r30,motor_write
284 0200 F0E0 ldi r31,lo8(0)
285 0202 43E0 ldi r20,3
286 0204 EE0F 1: lsl r30
287 0206 FF1F rol r31
288 0208 4A95 dec r20
289 020a 01F4 brne 1b
290 020c E050 subi r30,lo8(-(Motor))
291 020e F040 sbci r31,hi8(-(Motor))
292 0210 1482 std Z+4,__zero_reg__
293 .L29:
294 0212 E091 0000 lds r30,motor_write
295 0216 A091 0000 lds r26,motor_write
296 021a F0E0 ldi r31,lo8(0)
297 021c 33E0 ldi r19,3
298 021e EE0F 1: lsl r30
299 0220 FF1F rol r31
300 0222 3A95 dec r19
301 0224 01F4 brne 1b
302 0226 E050 subi r30,lo8(-(Motor))
303 0228 F040 sbci r31,hi8(-(Motor))
304 022a 9481 ldd r25,Z+4
305 022c 990F lsl r25
306 022e 990F lsl r25
307 0230 990F lsl r25
308 0232 B0E0 ldi r27,lo8(0)
309 0234 23E0 ldi r18,3
310 0236 AA0F 1: lsl r26
311 0238 BB1F rol r27
312 023a 2A95 dec r18
313 023c 01F4 brne 1b
314 023e A050 subi r26,lo8(-(Motor))
315 0240 B040 sbci r27,hi8(-(Motor))
316 0242 1296 adiw r26,2
317 0244 8C91 ld r24,X
318 0246 8770 andi r24,lo8(7)
319 0248 982B or r25,r24
320 024a 9093 BB00 sts 187,r25
321 024e 85E8 ldi r24,lo8(-123)
322 0250 8093 BC00 sts 188,r24
323 0254 4091 0000 lds r20,motor_write
324 0258 2091 0000 lds r18,BLConfig_WriteMask
325 025c 3091 0000 lds r19,(BLConfig_WriteMask)+1
326 0260 81E0 ldi r24,lo8(1)
327 0262 90E0 ldi r25,hi8(1)
328 0264 00C0 rjmp 2f
329 0266 880F 1: lsl r24
330 0268 991F rol r25
331 026a 4A95 2: dec r20
332 026c 02F4 brpl 1b
333 026e 8223 and r24,r18
334 0270 9323 and r25,r19
335 0272 892B or r24,r25
336 0274 01F0 breq .L30
337 0276 80E0 ldi r24,lo8(BLConfig)
338 0278 90E0 ldi r25,hi8(BLConfig)
339 027a 9093 0000 sts (pBuff.1659)+1,r25
340 027e 8093 0000 sts pBuff.1659,r24
341 0282 88E0 ldi r24,lo8(8)
342 0284 8093 0000 sts BuffLen.1660,r24
343 0288 00C0 rjmp .L54
344 .L30:
345 028a 84E0 ldi r24,lo8(4)
346 028c 00C0 rjmp .L61
347 .L12:
348 028e E091 0000 lds r30,pBuff.1659
349 0292 F091 0000 lds r31,(pBuff.1659)+1
350 0296 8191 ld r24,Z+
351 0298 8093 BB00 sts 187,r24
352 029c 85E8 ldi r24,lo8(-123)
353 029e 8093 BC00 sts 188,r24
354 02a2 F093 0000 sts (pBuff.1659)+1,r31
355 02a6 E093 0000 sts pBuff.1659,r30
356 02aa 8091 0000 lds r24,BuffLen.1660
357 02ae 8150 subi r24,lo8(-(-1))
358 02b0 8093 0000 sts BuffLen.1660,r24
359 02b4 8823 tst r24
360 02b6 01F4 brne .+2
361 02b8 00C0 rjmp .L54
362 02ba 83E0 ldi r24,lo8(3)
363 02bc 00C0 rjmp .L61
364 .L13:
365 02be 8091 B900 lds r24,185
366 02c2 8033 cpi r24,lo8(48)
367 02c4 01F4 brne .L31
368 02c6 8091 0000 lds r24,missing_motor.1657
369 02ca 8823 tst r24
370 02cc 01F4 brne .L32
371 02ce 8091 0000 lds r24,motor_write
372 02d2 8F5F subi r24,lo8(-(1))
373 02d4 8093 0000 sts missing_motor.1657,r24
374 .L32:
375 02d8 E091 0000 lds r30,motor_write
376 02dc F0E0 ldi r31,lo8(0)
377 02de 93E0 ldi r25,3
378 02e0 EE0F 1: lsl r30
379 02e2 FF1F rol r31
380 02e4 9A95 dec r25
381 02e6 01F4 brne 1b
382 02e8 E050 subi r30,lo8(-(Motor))
383 02ea F040 sbci r31,hi8(-(Motor))
384 02ec 8381 ldd r24,Z+3
385 02ee 8F77 andi r24,lo8(127)
386 02f0 8F37 cpi r24,lo8(127)
387 02f2 01F0 breq .L31
388 02f4 E091 0000 lds r30,motor_write
389 02f8 F0E0 ldi r31,lo8(0)
390 02fa 83E0 ldi r24,3
391 02fc EE0F 1: lsl r30
392 02fe FF1F rol r31
393 0300 8A95 dec r24
394 0302 01F4 brne 1b
395 0304 E050 subi r30,lo8(-(Motor))
396 0306 F040 sbci r31,hi8(-(Motor))
397 0308 8381 ldd r24,Z+3
398 030a 8F5F subi r24,lo8(-(1))
399 030c 8383 std Z+3,r24
400 .L31:
401 030e 1092 0000 sts twi_state,__zero_reg__
402 0312 84E9 ldi r24,lo8(-108)
403 0314 8093 BC00 sts 188,r24
404 0318 8AE0 ldi r24,lo8(10)
405 031a 90E0 ldi r25,hi8(10)
406 031c 9093 0000 sts (I2CTimeout)+1,r25
407 0320 8093 0000 sts I2CTimeout,r24
408 0324 8091 0000 lds r24,motor_write
409 0328 8F5F subi r24,lo8(-(1))
410 032a 8093 0000 sts motor_write,r24
411 032e 1092 0000 sts twi_state,__zero_reg__
412 0332 00C0 rjmp .L64
413 .L14:
414 0334 8091 B900 lds r24,185
415 0338 8034 cpi r24,lo8(64)
416 033a 01F0 breq .L33
417 033c E091 0000 lds r30,motor_read
418 0340 F0E0 ldi r31,lo8(0)
419 0342 B3E0 ldi r27,3
420 0344 EE0F 1: lsl r30
421 0346 FF1F rol r31
422 0348 BA95 dec r27
423 034a 01F4 brne 1b
424 034c E050 subi r30,lo8(-(Motor))
425 034e F040 sbci r31,hi8(-(Motor))
426 0350 8381 ldd r24,Z+3
427 0352 8F77 andi r24,lo8(127)
428 0354 8383 std Z+3,r24
429 0356 8091 0000 lds r24,motor_read
430 035a 8F5F subi r24,lo8(-(1))
431 035c 8093 0000 sts motor_read,r24
432 0360 8091 0000 lds r24,motor_read
433 0364 8C30 cpi r24,lo8(12)
434 0366 00F0 brlo .L34
435 0368 1092 0000 sts motor_read,__zero_reg__
436 036c 1092 0000 sts (BLConfig_ReadMask)+1,__zero_reg__
437 0370 1092 0000 sts BLConfig_ReadMask,__zero_reg__
438 0374 8091 0000 lds r24,motor_read_temperature.1658
439 0378 8F5F subi r24,lo8(-(1))
440 037a 8093 0000 sts motor_read_temperature.1658,r24
441 037e 8C30 cpi r24,lo8(12)
442 0380 00F0 brlo .L34
443 0382 1092 0000 sts motor_read_temperature.1658,__zero_reg__
444 0386 8091 0000 lds r24,BLFlags
445 038a 8D7F andi r24,lo8(-3)
446 038c 8093 0000 sts BLFlags,r24
447 .L34:
448 0390 8091 0000 lds r24,BLFlags
449 0394 8160 ori r24,lo8(1)
450 0396 8093 0000 sts BLFlags,r24
451 039a 1092 0000 sts twi_state,__zero_reg__
452 039e 84E9 ldi r24,lo8(-108)
453 03a0 00C0 rjmp .L57
454 .L33:
455 03a2 E091 0000 lds r30,motor_read
456 03a6 F0E0 ldi r31,lo8(0)
457 03a8 A3E0 ldi r26,3
458 03aa EE0F 1: lsl r30
459 03ac FF1F rol r31
460 03ae AA95 dec r26
461 03b0 01F4 brne 1b
462 03b2 E050 subi r30,lo8(-(Motor))
463 03b4 F040 sbci r31,hi8(-(Motor))
464 03b6 8381 ldd r24,Z+3
465 03b8 8068 ori r24,lo8(-128)
466 03ba 8383 std Z+3,r24
467 03bc E091 0000 lds r30,motor_read
468 03c0 F0E0 ldi r31,lo8(0)
469 03c2 43E0 ldi r20,3
470 03c4 EE0F 1: lsl r30
471 03c6 FF1F rol r31
472 03c8 4A95 dec r20
473 03ca 01F4 brne 1b
474 03cc E050 subi r30,lo8(-(Motor))
475 03ce F040 sbci r31,hi8(-(Motor))
476 03d0 8081 ld r24,Z
477 03d2 80FF sbrs r24,0
478 03d4 00C0 rjmp .L36
479 03d6 E091 0000 lds r30,motor_read
480 03da F0E0 ldi r31,lo8(0)
481 03dc 33E0 ldi r19,3
482 03de EE0F 1: lsl r30
483 03e0 FF1F rol r31
484 03e2 3A95 dec r19
485 03e4 01F4 brne 1b
486 03e6 E050 subi r30,lo8(-(Motor))
487 03e8 F040 sbci r31,hi8(-(Motor))
488 03ea 8481 ldd r24,Z+4
489 03ec 8823 tst r24
490 03ee 01F0 breq .L38
491 03f0 8031 cpi r24,lo8(16)
492 03f2 01F4 brne .L37
493 03f4 80E0 ldi r24,lo8(BLConfig)
494 03f6 90E0 ldi r25,hi8(BLConfig)
495 03f8 9093 0000 sts (pBuff.1659)+1,r25
496 03fc 8093 0000 sts pBuff.1659,r24
497 0400 88E0 ldi r24,lo8(8)
498 0402 00C0 rjmp .L56
499 .L38:
500 0404 8091 0000 lds r24,motor_read
501 0408 90E0 ldi r25,lo8(0)
502 040a 23E0 ldi r18,3
503 040c 880F 1: lsl r24
504 040e 991F rol r25
505 0410 2A95 dec r18
506 0412 01F4 brne 1b
507 0414 8050 subi r24,lo8(-(Motor+5))
508 0416 9040 sbci r25,hi8(-(Motor+5))
509 0418 9093 0000 sts (pBuff.1659)+1,r25
510 041c 8093 0000 sts pBuff.1659,r24
511 0420 9091 0000 lds r25,motor_read
512 0424 8091 0000 lds r24,motor_read_temperature.1658
513 0428 9817 cp r25,r24
514 042a 01F4 brne .L42
515 042c 83E0 ldi r24,lo8(3)
516 042e 00C0 rjmp .L56
517 .L36:
518 0430 8091 0000 lds r24,motor_read
519 0434 90E0 ldi r25,lo8(0)
520 0436 B3E0 ldi r27,3
521 0438 880F 1: lsl r24
522 043a 991F rol r25
523 043c BA95 dec r27
524 043e 01F4 brne 1b
525 0440 8050 subi r24,lo8(-(Motor+5))
526 0442 9040 sbci r25,hi8(-(Motor+5))
527 0444 9093 0000 sts (pBuff.1659)+1,r25
528 0448 8093 0000 sts pBuff.1659,r24
529 044c 8091 0000 lds r24,BLFlags
530 0450 81FD sbrc r24,1
531 0452 00C0 rjmp .L41
532 0454 9091 0000 lds r25,motor_read
533 0458 8091 0000 lds r24,motor_read_temperature.1658
534 045c 9817 cp r25,r24
535 045e 01F4 brne .L42
536 .L41:
537 0460 82E0 ldi r24,lo8(2)
538 0462 00C0 rjmp .L56
539 .L42:
540 0464 81E0 ldi r24,lo8(1)
541 .L56:
542 0466 8093 0000 sts BuffLen.1660,r24
543 .L37:
544 046a 8091 0000 lds r24,BuffLen.1660
545 046e 8130 cpi r24,lo8(1)
546 0470 01F4 brne .L43
547 0472 85E8 ldi r24,lo8(-123)
548 0474 00C0 rjmp .L57
549 .L43:
550 0476 85EC ldi r24,lo8(-59)
551 .L57:
552 0478 8093 BC00 sts 188,r24
553 047c 8091 0000 lds r24,missing_motor.1657
554 0480 8093 0000 sts MissingMotor,r24
555 0484 1092 0000 sts missing_motor.1657,__zero_reg__
556 0488 00C0 rjmp .L54
557 .L15:
558 048a 8091 BB00 lds r24,187
559 048e E091 0000 lds r30,pBuff.1659
560 0492 F091 0000 lds r31,(pBuff.1659)+1
561 0496 8193 st Z+,r24
562 0498 F093 0000 sts (pBuff.1659)+1,r31
563 049c E093 0000 sts pBuff.1659,r30
564 04a0 8091 0000 lds r24,BuffLen.1660
565 04a4 8150 subi r24,lo8(-(-1))
566 04a6 8093 0000 sts BuffLen.1660,r24
567 04aa 8230 cpi r24,lo8(2)
568 04ac 00F0 brlo .L44
569 04ae 85EC ldi r24,lo8(-59)
570 04b0 00C0 rjmp .L58
571 .L44:
572 04b2 8130 cpi r24,lo8(1)
573 04b4 01F4 brne .L46
574 04b6 85E8 ldi r24,lo8(-123)
575 .L58:
576 04b8 8093 BC00 sts 188,r24
577 04bc 86E0 ldi r24,lo8(6)
578 04be 00C0 rjmp .L61
579 .L46:
580 04c0 8091 0000 lds r24,BLFlags
581 04c4 81FF sbrs r24,1
582 04c6 00C0 rjmp .L47
583 04c8 8091 0000 lds r24,FCFlags
584 04cc 80FD sbrc r24,0
585 04ce 00C0 rjmp .L48
586 04d0 E091 0000 lds r30,motor_read
587 04d4 F0E0 ldi r31,lo8(0)
588 04d6 A3E0 ldi r26,3
589 04d8 EE0F 1: lsl r30
590 04da FF1F rol r31
591 04dc AA95 dec r26
592 04de 01F4 brne 1b
593 04e0 E050 subi r30,lo8(-(Motor))
594 04e2 F040 sbci r31,hi8(-(Motor))
595 04e4 8681 ldd r24,Z+6
596 04e6 8A3F cpi r24,lo8(-6)
597 04e8 01F4 brne .L48
598 04ea E091 0000 lds r30,motor_read
599 04ee F0E0 ldi r31,lo8(0)
600 04f0 43E0 ldi r20,3
601 04f2 EE0F 1: lsl r30
602 04f4 FF1F rol r31
603 04f6 4A95 dec r20
604 04f8 01F4 brne 1b
605 04fa E050 subi r30,lo8(-(Motor))
606 04fc F040 sbci r31,hi8(-(Motor))
607 04fe 8081 ld r24,Z
608 0500 8160 ori r24,lo8(1)
609 0502 8083 st Z,r24
610 0504 00C0 rjmp .L47
611 .L48:
612 0506 E091 0000 lds r30,motor_read
613 050a F0E0 ldi r31,lo8(0)
614 050c 33E0 ldi r19,3
615 050e EE0F 1: lsl r30
616 0510 FF1F rol r31
617 0512 3A95 dec r19
618 0514 01F4 brne 1b
619 0516 E050 subi r30,lo8(-(Motor))
620 0518 F040 sbci r31,hi8(-(Motor))
621 051a 1082 st Z,__zero_reg__
622 .L47:
623 051c 8091 0000 lds r24,motor_read
624 0520 8F5F subi r24,lo8(-(1))
625 0522 8093 0000 sts motor_read,r24
626 0526 8091 0000 lds r24,motor_read
627 052a 8C30 cpi r24,lo8(12)
628 052c 00F0 brlo .L49
629 052e 1092 0000 sts motor_read,__zero_reg__
630 0532 1092 0000 sts (BLConfig_ReadMask)+1,__zero_reg__
631 0536 1092 0000 sts BLConfig_ReadMask,__zero_reg__
632 053a 8091 0000 lds r24,motor_read_temperature.1658
633 053e 8F5F subi r24,lo8(-(1))
634 0540 8093 0000 sts motor_read_temperature.1658,r24
635 0544 8C30 cpi r24,lo8(12)
636 0546 00F0 brlo .L49
637 0548 1092 0000 sts motor_read_temperature.1658,__zero_reg__
638 054c 8091 0000 lds r24,BLFlags
639 0550 8D7F andi r24,lo8(-3)
640 0552 8093 0000 sts BLFlags,r24
641 .L49:
642 0556 1092 0000 sts twi_state,__zero_reg__
643 055a 84E9 ldi r24,lo8(-108)
644 055c 8093 BC00 sts 188,r24
645 0560 00C0 rjmp .L62
646 .L61:
647 0562 8093 0000 sts twi_state,r24
648 0566 00C0 rjmp .L54
649 .L16:
650 0568 88E9 ldi r24,lo8(-104)
651 056a 00C0 rjmp .L63
652 .L17:
653 056c 8091 0000 lds r24,dac_channel
654 0570 90E0 ldi r25,lo8(0)
655 0572 0896 adiw r24,8
656 0574 880F lsl r24
657 0576 991F rol r25
658 0578 00C0 rjmp .L63
659 .L18:
660 057a 8091 0000 lds r24,dac_channel
661 057e 8130 cpi r24,lo8(1)
662 0580 01F0 breq .L51
663 0582 8130 cpi r24,lo8(1)
664 0584 00F0 brlo .L50
665 0586 8230 cpi r24,lo8(2)
666 0588 01F0 breq .+2
667 058a 00C0 rjmp .L54
668 058c 00C0 rjmp .L65
669 .L50:
670 058e 8091 0000 lds r24,AnalogOffsetNick
671 0592 00C0 rjmp .L63
672 .L51:
673 0594 8091 0000 lds r24,AnalogOffsetRoll
674 0598 00C0 rjmp .L63
675 .L65:
676 059a 8091 0000 lds r24,AnalogOffsetGier
677 059e 00C0 rjmp .L63
678 .L19:
679 05a0 80E8 ldi r24,lo8(-128)
680 05a2 00C0 rjmp .L63
681 .L20:
682 05a4 1092 0000 sts twi_state,__zero_reg__
683 05a8 84E9 ldi r24,lo8(-108)
684 05aa 8093 BC00 sts 188,r24
685 05ae 8AE0 ldi r24,lo8(10)
686 05b0 90E0 ldi r25,hi8(10)
687 05b2 9093 0000 sts (I2CTimeout)+1,r25
688 05b6 8093 0000 sts I2CTimeout,r24
689 05ba 8091 0000 lds r24,dac_channel
690 05be 8230 cpi r24,lo8(2)
691 05c0 00F4 brsh .L53
692 05c2 8091 0000 lds r24,dac_channel
693 05c6 8F5F subi r24,lo8(-(1))
694 05c8 8093 0000 sts dac_channel,r24
695 05cc 82E1 ldi r24,lo8(18)
696 05ce 8093 0000 sts twi_state,r24
697 .L64:
698 05d2 8091 0000 lds r24,BLFlags
699 05d6 8E7F andi r24,lo8(-2)
700 05d8 8093 0000 sts BLFlags,r24
701 05dc 85EA ldi r24,lo8(-91)
702 .L59:
703 05de 8093 BC00 sts 188,r24
704 05e2 00C0 rjmp .L54
705 .L53:
706 05e4 1092 0000 sts dac_channel,__zero_reg__
707 .L62:
708 05e8 8091 0000 lds r24,BLFlags
709 05ec 8160 ori r24,lo8(1)
710 05ee 8093 0000 sts BLFlags,r24
711 05f2 00C0 rjmp .L54
712 .L8:
713 05f4 1092 0000 sts twi_state,__zero_reg__
714 05f8 84E9 ldi r24,lo8(-108)
715 05fa 8093 BC00 sts 188,r24
716 05fe 8091 0000 lds r24,BLFlags
717 0602 8160 ori r24,lo8(1)
718 0604 8093 0000 sts BLFlags,r24
719 0608 8AE0 ldi r24,lo8(10)
720 060a 90E0 ldi r25,hi8(10)
721 060c 9093 0000 sts (I2CTimeout)+1,r25
722 0610 8093 0000 sts I2CTimeout,r24
723 0614 1092 0000 sts motor_write,__zero_reg__
724 0618 1092 0000 sts motor_read,__zero_reg__
725 .L54:
726 /* epilogue start */
727 061c FF91 pop r31
728 061e EF91 pop r30
729 0620 BF91 pop r27
730 0622 AF91 pop r26
731 0624 9F91 pop r25
732 0626 8F91 pop r24
733 0628 4F91 pop r20
734 062a 3F91 pop r19
735 062c 2F91 pop r18
736 062e 0F90 pop r0
737 0630 0FBE out __SREG__,r0
738 0632 0F90 pop r0
739 0634 1F90 pop __zero_reg__
740 0636 1895 reti
742 .global I2C_ReadBLConfig
744 I2C_ReadBLConfig:
745 0638 FF92 push r15
746 063a 0F93 push r16
747 063c 1F93 push r17
748 063e CF93 push r28
749 0640 DF93 push r29
750 /* prologue: function */
751 /* frame size = 0 */
752 0642 982F mov r25,r24
753 0644 8091 0000 lds r24,MotorenEin
754 0648 8823 tst r24
755 064a 01F0 breq .+2
756 064c 00C0 rjmp .L67
757 064e 8091 0000 lds r24,PC_MotortestActive
758 0652 8823 tst r24
759 0654 01F0 breq .+2
760 0656 00C0 rjmp .L67
761 0658 9D30 cpi r25,lo8(13)
762 065a 00F0 brlo .+2
763 065c 00C0 rjmp .L68
764 065e 9923 tst r25
765 0660 01F4 brne .L69
766 0662 86E0 ldi r24,lo8(6)
767 0664 00C0 rjmp .L70
768 .L69:
769 0666 C92F mov r28,r25
770 0668 D0E0 ldi r29,lo8(0)
771 066a 2197 sbiw r28,1
772 066c FE01 movw r30,r28
773 066e 43E0 ldi r20,3
774 0670 EE0F 1: lsl r30
775 0672 FF1F rol r31
776 0674 4A95 dec r20
777 0676 01F4 brne 1b
778 0678 E050 subi r30,lo8(-(Motor))
779 067a F040 sbci r31,hi8(-(Motor))
780 067c 8381 ldd r24,Z+3
781 067e 87FF sbrs r24,7
782 0680 00C0 rjmp .L68
783 0682 8081 ld r24,Z
784 0684 80FD sbrc r24,0
785 0686 00C0 rjmp .L71
786 0688 83E0 ldi r24,lo8(3)
787 068a 00C0 rjmp .L70
788 .L71:
789 068c 80ED ldi r24,lo8(2000)
790 068e 97E0 ldi r25,hi8(2000)
791 0690 0E94 0000 call SetDelay
792 0694 8C01 movw r16,r24
793 .L73:
794 0696 8091 0000 lds r24,BLFlags
795 069a 80FD sbrc r24,0
796 069c 00C0 rjmp .L72
797 069e C801 movw r24,r16
798 06a0 0E94 0000 call CheckDelay
799 06a4 8823 tst r24
800 06a6 01F0 breq .L73
801 .L72:
802 06a8 81E0 ldi r24,lo8(1)
803 06aa 90E0 ldi r25,hi8(1)
804 06ac 00C0 rjmp 2f
805 06ae 880F 1: lsl r24
806 06b0 991F rol r25
807 06b2 CA95 2: dec r28
808 06b4 02F4 brpl 1b
809 06b6 9093 0000 sts (BLConfig_ReadMask)+1,r25
810 06ba 8093 0000 sts BLConfig_ReadMask,r24
811 06be E0E0 ldi r30,lo8(Motor+1)
812 06c0 F0E0 ldi r31,hi8(Motor+1)
813 06c2 40E0 ldi r20,lo8(0)
814 06c4 50E0 ldi r21,hi8(0)
815 06c6 61E0 ldi r22,lo8(1)
816 06c8 70E0 ldi r23,hi8(1)
817 .L75:
818 06ca 2091 0000 lds r18,BLConfig_ReadMask
819 06ce 3091 0000 lds r19,(BLConfig_ReadMask)+1
820 06d2 CB01 movw r24,r22
821 06d4 042E mov r0,r20
822 06d6 00C0 rjmp 2f
823 06d8 880F 1: lsl r24
824 06da 991F rol r25
825 06dc 0A94 2: dec r0
826 06de 02F4 brpl 1b
827 06e0 8223 and r24,r18
828 06e2 9323 and r25,r19
829 06e4 892B or r24,r25
830 06e6 01F0 breq .L74
831 06e8 1082 st Z,__zero_reg__
832 06ea 1182 std Z+1,__zero_reg__
833 .L74:
834 06ec 4F5F subi r20,lo8(-(1))
835 06ee 5F4F sbci r21,hi8(-(1))
836 06f0 3896 adiw r30,8
837 06f2 4C30 cpi r20,12
838 06f4 5105 cpc r21,__zero_reg__
839 06f6 01F4 brne .L75
840 06f8 1092 0000 sts motor_read,__zero_reg__
841 06fc 1092 0000 sts BLConfig,__zero_reg__
842 0700 1092 0000 sts BLConfig+7,__zero_reg__
843 0704 35EA ldi r19,lo8(-91)
844 0706 F32E mov r15,r19
845 .L79:
846 0708 1092 0000 sts twi_state,__zero_reg__
847 070c 8091 0000 lds r24,BLFlags
848 0710 8E7F andi r24,lo8(-2)
849 0712 8093 0000 sts BLFlags,r24
850 0716 F092 BC00 sts 188,r15
851 .L77:
852 071a 8091 0000 lds r24,BLFlags
853 071e 80FD sbrc r24,0
854 0720 00C0 rjmp .L76
855 0722 C801 movw r24,r16
856 0724 0E94 0000 call CheckDelay
857 0728 8823 tst r24
858 072a 01F0 breq .L77
859 .L76:
860 072c 8091 0000 lds r24,BLConfig_ReadMask
861 0730 9091 0000 lds r25,(BLConfig_ReadMask)+1
862 0734 892B or r24,r25
863 0736 01F0 breq .L78
864 0738 C801 movw r24,r16
865 073a 0E94 0000 call CheckDelay
866 073e 8823 tst r24
867 0740 01F0 breq .L79
868 .L78:
869 0742 8091 0000 lds r24,BLConfig
870 0746 8230 cpi r24,lo8(2)
871 0748 01F0 breq .L80
872 074a 84E0 ldi r24,lo8(4)
873 074c 00C0 rjmp .L70
874 .L80:
875 074e 80E0 ldi r24,lo8(BLConfig)
876 0750 90E0 ldi r25,hi8(BLConfig)
877 0752 67E0 ldi r22,lo8(7)
878 0754 70E0 ldi r23,hi8(7)
879 0756 0E94 0000 call RAM_Checksum
880 075a 9091 0000 lds r25,BLConfig+7
881 075e 8917 cp r24,r25
882 0760 01F4 brne .L81
883 0762 80E0 ldi r24,lo8(0)
884 0764 00C0 rjmp .L70
885 .L81:
886 0766 85E0 ldi r24,lo8(5)
887 0768 00C0 rjmp .L70
888 .L67:
889 076a 81E0 ldi r24,lo8(1)
890 076c 00C0 rjmp .L70
891 .L68:
892 076e 82E0 ldi r24,lo8(2)
893 .L70:
894 /* epilogue start */
895 0770 CDB7 in r28,__SP_L__
896 0772 DEB7 in r29,__SP_H__
897 0774 E5E0 ldi r30, lo8(5)
898 0776 0C94 0000 jmp __epilogue_restores__ + ((18 - 5) * 2)
900 .global I2C_WriteBLConfig
902 I2C_WriteBLConfig:
903 077a 1F93 push r17
904 077c CF93 push r28
905 077e DF93 push r29
906 /* prologue: function */
907 /* frame size = 0 */
908 0780 182F mov r17,r24
909 0782 8091 0000 lds r24,MotorenEin
910 0786 8823 tst r24
911 0788 01F0 breq .+2
912 078a 00C0 rjmp .L88
913 078c 8091 0000 lds r24,PC_MotortestActive
914 0790 8823 tst r24
915 0792 01F0 breq .+2
916 0794 00C0 rjmp .L88
917 0796 1D30 cpi r17,lo8(13)
918 0798 00F0 brlo .+2
919 079a 00C0 rjmp .L89
920 079c 1123 tst r17
921 079e 01F0 breq .L90
922 07a0 E12F mov r30,r17
923 07a2 F0E0 ldi r31,lo8(0)
924 07a4 53E0 ldi r21,3
925 07a6 EE0F 1: lsl r30
926 07a8 FF1F rol r31
927 07aa 5A95 dec r21
928 07ac 01F4 brne 1b
929 07ae E050 subi r30,lo8(-(Motor-8))
930 07b0 F040 sbci r31,hi8(-(Motor-8))
931 07b2 8381 ldd r24,Z+3
932 07b4 87FF sbrs r24,7
933 07b6 00C0 rjmp .L89
934 07b8 8081 ld r24,Z
935 07ba 80FD sbrc r24,0
936 07bc 00C0 rjmp .L90
937 07be 83E0 ldi r24,lo8(3)
938 07c0 00C0 rjmp .L91
939 .L90:
940 07c2 8091 0000 lds r24,BLConfig
941 07c6 8230 cpi r24,lo8(2)
942 07c8 01F0 breq .L92
943 07ca 84E0 ldi r24,lo8(4)
944 07cc 00C0 rjmp .L91
945 .L92:
946 07ce 80E0 ldi r24,lo8(BLConfig)
947 07d0 90E0 ldi r25,hi8(BLConfig)
948 07d2 67E0 ldi r22,lo8(7)
949 07d4 70E0 ldi r23,hi8(7)
950 07d6 0E94 0000 call RAM_Checksum
951 07da 9091 0000 lds r25,BLConfig+7
952 07de 8917 cp r24,r25
953 07e0 01F0 breq .L93
954 07e2 85E0 ldi r24,lo8(5)
955 07e4 00C0 rjmp .L91
956 .L93:
957 07e6 80ED ldi r24,lo8(2000)
958 07e8 97E0 ldi r25,hi8(2000)
959 07ea 0E94 0000 call SetDelay
960 07ee EC01 movw r28,r24
961 .L95:
962 07f0 8091 0000 lds r24,BLFlags
963 07f4 80FD sbrc r24,0
964 07f6 00C0 rjmp .L94
965 07f8 CE01 movw r24,r28
966 07fa 0E94 0000 call CheckDelay
967 07fe 8823 tst r24
968 0800 01F0 breq .L95
969 .L94:
970 0802 1123 tst r17
971 0804 01F4 brne .L96
972 0806 8FEF ldi r24,lo8(255)
973 0808 90E0 ldi r25,hi8(255)
974 .L109:
975 080a 9093 0000 sts (BLConfig_WriteMask)+1,r25
976 080e 8093 0000 sts BLConfig_WriteMask,r24
977 0812 E0E0 ldi r30,lo8(Motor+1)
978 0814 F0E0 ldi r31,hi8(Motor+1)
979 0816 40E0 ldi r20,lo8(0)
980 0818 50E0 ldi r21,hi8(0)
981 081a 61E0 ldi r22,lo8(1)
982 081c 70E0 ldi r23,hi8(1)
983 081e 00C0 rjmp .L97
984 .L96:
985 0820 212F mov r18,r17
986 0822 30E0 ldi r19,lo8(0)
987 0824 2150 subi r18,lo8(-(-1))
988 0826 3040 sbci r19,hi8(-(-1))
989 0828 81E0 ldi r24,lo8(1)
990 082a 90E0 ldi r25,hi8(1)
991 082c 00C0 rjmp 2f
992 082e 880F 1: lsl r24
993 0830 991F rol r25
994 0832 2A95 2: dec r18
995 0834 02F4 brpl 1b
996 0836 00C0 rjmp .L109
997 .L97:
998 0838 2091 0000 lds r18,BLConfig_WriteMask
999 083c 3091 0000 lds r19,(BLConfig_WriteMask)+1
1000 0840 CB01 movw r24,r22
1001 0842 042E mov r0,r20
1002 0844 00C0 rjmp 2f
1003 0846 880F 1: lsl r24
1004 0848 991F rol r25
1005 084a 0A94 2: dec r0
1006 084c 02F4 brpl 1b
1007 084e 8223 and r24,r18
1008 0850 9323 and r25,r19
1009 0852 892B or r24,r25
1010 0854 01F0 breq .L99
1011 0856 1082 st Z,__zero_reg__
1012 0858 1182 std Z+1,__zero_reg__
1013 .L99:
1014 085a 4F5F subi r20,lo8(-(1))
1015 085c 5F4F sbci r21,hi8(-(1))
1016 085e 3896 adiw r30,8
1017 0860 4C30 cpi r20,12
1018 0862 5105 cpc r21,__zero_reg__
1019 0864 01F4 brne .L97
1020 0866 1092 0000 sts motor_write,__zero_reg__
1021 086a 15EA ldi r17,lo8(-91)
1022 .L103:
1023 086c 1092 0000 sts twi_state,__zero_reg__
1024 0870 8091 0000 lds r24,BLFlags
1025 0874 8E7F andi r24,lo8(-2)
1026 0876 8093 0000 sts BLFlags,r24
1027 087a 1093 BC00 sts 188,r17
1028 .L101:
1029 087e 8091 0000 lds r24,BLFlags
1030 0882 80FD sbrc r24,0
1031 0884 00C0 rjmp .L100
1032 0886 CE01 movw r24,r28
1033 0888 0E94 0000 call CheckDelay
1034 088c 8823 tst r24
1035 088e 01F0 breq .L101
1036 .L100:
1037 0890 8091 0000 lds r24,BLConfig_WriteMask
1038 0894 9091 0000 lds r25,(BLConfig_WriteMask)+1
1039 0898 892B or r24,r25
1040 089a 01F0 breq .L102
1041 089c CE01 movw r24,r28
1042 089e 0E94 0000 call CheckDelay
1043 08a2 8823 tst r24
1044 08a4 01F0 breq .L103
1045 .L102:
1046 08a6 8091 0000 lds r24,BLConfig_WriteMask
1047 08aa 9091 0000 lds r25,(BLConfig_WriteMask)+1
1048 08ae 892B or r24,r25
1049 08b0 01F4 brne .L89
1050 08b2 80E0 ldi r24,lo8(0)
1051 08b4 00C0 rjmp .L91
1052 .L88:
1053 08b6 81E0 ldi r24,lo8(1)
1054 08b8 00C0 rjmp .L91
1055 .L89:
1056 08ba 82E0 ldi r24,lo8(2)
1057 .L91:
1058 /* epilogue start */
1059 08bc DF91 pop r29
1060 08be CF91 pop r28
1061 08c0 1F91 pop r17
1062 08c2 0895 ret
1064 .global twi_state
1065 .global twi_state
1066 .section .bss
1069 twi_state:
1070 0000 00 .skip 1,0
1071 .global dac_channel
1072 .global dac_channel
1075 dac_channel:
1076 0001 00 .skip 1,0
1077 .global motor_write
1078 .global motor_write
1081 motor_write:
1082 0002 00 .skip 1,0
1083 .global motor_read
1084 .global motor_read
1087 motor_read:
1088 0003 00 .skip 1,0
1089 .global I2CTimeout
1090 .data
1093 I2CTimeout:
1094 0000 6400 .word 100
1095 .global MissingMotor
1096 .global MissingMotor
1097 .section .bss
1100 MissingMotor:
1101 0004 00 .skip 1,0
1102 .global BLFlags
1103 .global BLFlags
1106 BLFlags:
1107 0005 00 .skip 1,0
1108 .global BLConfig_WriteMask
1109 .global BLConfig_WriteMask
1112 BLConfig_WriteMask:
1113 0006 0000 .skip 2,0
1114 .global BLConfig_ReadMask
1115 .global BLConfig_ReadMask
1118 BLConfig_ReadMask:
1119 0008 0000 .skip 2,0
1120 .lcomm BuffLen.1660,1
1121 .lcomm pBuff.1659,2
1122 .lcomm motor_read_temperature.1658,1
1123 .lcomm missing_motor.1657,1
1124 .comm Motor,96,1
1125 .comm BLConfig,8,1
1126 .global __do_copy_data
1127 .global __do_clear_bss
DEFINED SYMBOLS
*ABS*:00000000 twimaster.c
C:\Users\Arthur-P\AppData\Local\Temp/cciecaaa.s:3 *ABS*:0000003f __SREG__
C:\Users\Arthur-P\AppData\Local\Temp/cciecaaa.s:4 *ABS*:0000003e __SP_H__
C:\Users\Arthur-P\AppData\Local\Temp/cciecaaa.s:5 *ABS*:0000003d __SP_L__
C:\Users\Arthur-P\AppData\Local\Temp/cciecaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\Arthur-P\AppData\Local\Temp/cciecaaa.s:7 *ABS*:00000001 __zero_reg__
C:\Users\Arthur-P\AppData\Local\Temp/cciecaaa.s:15 .bss:00000000 BLConfig_ReadMask
C:\Users\Arthur-P\AppData\Local\Temp/cciecaaa.s:21 .bss:00000002 BLConfig_WriteMask
C:\Users\Arthur-P\AppData\Local\Temp/cciecaaa.s:27 .bss:00000004 BLFlags
C:\Users\Arthur-P\AppData\Local\Temp/cciecaaa.s:33 .bss:00000005 MissingMotor
C:\Users\Arthur-P\AppData\Local\Temp/cciecaaa.s:39 .data:00000000 I2CTimeout
C:\Users\Arthur-P\AppData\Local\Temp/cciecaaa.s:46 .bss:00000006 motor_read
C:\Users\Arthur-P\AppData\Local\Temp/cciecaaa.s:52 .bss:00000007 motor_write
C:\Users\Arthur-P\AppData\Local\Temp/cciecaaa.s:58 .bss:00000008 dac_channel
C:\Users\Arthur-P\AppData\Local\Temp/cciecaaa.s:64 .bss:00000009 twi_state
C:\Users\Arthur-P\AppData\Local\Temp/cciecaaa.s:69 .text:00000000 I2C_Init
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccHkTAFJ.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccHkTAFJ.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccHkTAFJ.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccHkTAFJ.s:5 *ABS*:00000034 __CCP__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccHkTAFJ.s:6 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccHkTAFJ.s:7 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccHkTAFJ.s:11 .text:00000000 I2C_Init
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccHkTAFJ.s:1069 .bss:00000000 twi_state
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccHkTAFJ.s:1081 .bss:00000002 motor_write
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccHkTAFJ.s:1087 .bss:00000003 motor_read
*COM*:00000060 Motor
C:\Users\Arthur-P\AppData\Local\Temp/cciecaaa.s:113 .text:0000004c I2C_Reset
.bss:0000000a missing_motor.0
C:\Users\Arthur-P\AppData\Local\Temp/cciecaaa.s:140 .bss:0000000b motor_read_temperature.1
C:\Users\Arthur-P\AppData\Local\Temp/cciecaaa.s:141 .bss:0000000c pBuff.2
C:\Users\Arthur-P\AppData\Local\Temp/cciecaaa.s:142 .bss:0000000e BuffLen.3
C:\Users\Arthur-P\AppData\Local\Temp/cciecaaa.s:146 .text:00000092 __vector_26
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccHkTAFJ.s:55 .text:0000004c I2C_Reset
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccHkTAFJ.s:1106 .bss:00000005 BLFlags
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccHkTAFJ.s:99 .text:000000aa __vector_26
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccHkTAFJ.s:1112 .bss:00000006 BLConfig_WriteMask
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccHkTAFJ.s:1118 .bss:00000008 BLConfig_ReadMask
*COM*:00000008 BLConfig
C:\Users\Arthur-P\AppData\Local\Temp/cciecaaa.s:828 .text:00000670 I2C_WriteBLConfig
C:\Users\Arthur-P\AppData\Local\Temp/cciecaaa.s:1000 .text:000007c4 I2C_ReadBLConfig
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccHkTAFJ.s:1120 .bss:0000000b pBuff.1659
.bss:0000000a BuffLen.1660
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccHkTAFJ.s:1122 .bss:0000000e missing_motor.1657
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccHkTAFJ.s:1093 .data:00000000 I2CTimeout
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccHkTAFJ.s:1121 .bss:0000000d motor_read_temperature.1658
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccHkTAFJ.s:1100 .bss:00000004 MissingMotor
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccHkTAFJ.s:1075 .bss:00000001 dac_channel
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccHkTAFJ.s:744 .text:00000638 I2C_ReadBLConfig
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccHkTAFJ.s:902 .text:0000077a I2C_WriteBLConfig
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__tablejump2__
Mixer
RequiredMotors
1179,6 → 1136,9
AnalogOffsetGier
MotorenEin
PC_MotortestActive
RAM_Checksum
SetDelay
CheckDelay
RAM_Checksum
__epilogue_restores__
__do_copy_data
__do_clear_bss