Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
1 .file "twimaster.c"
2 .arch atmega644p
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
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 */
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
*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
*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
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__tablejump2__
Mixer
RequiredMotors
FCFlags
AnalogOffsetNick
AnalogOffsetRoll
AnalogOffsetGier
MotorenEin
PC_MotortestActive
RAM_Checksum
SetDelay
CheckDelay