1 .file "twimaster.c" 2 .arch atmega644 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 .text 11 .global i2c_init 13 i2c_init: 14 /* prologue: frame size=0 */ 15 /* prologue end (size=0) */ 16 0000 1092 B900 sts 185,__zero_reg__ 17 0004 8AE2 ldi r24,lo8(42) 18 0006 8093 B800 sts 184,r24 19 /* epilogue: frame size=0 */ 20 000a 0895 ret 21 /* epilogue end (size=1) */ 22 /* function i2c_init size 6 (5) */ 24 .global i2c_start 26 i2c_start: 27 /* prologue: frame size=0 */ 28 /* prologue end (size=0) */ 29 000c 85EA ldi r24,lo8(-91) 30 000e 8093 BC00 sts 188,r24 31 0012 80E0 ldi r24,lo8(0) 32 0014 90E0 ldi r25,hi8(0) 33 /* epilogue: frame size=0 */ 34 0016 0895 ret 35 /* epilogue end (size=1) */ 36 /* function i2c_start size 6 (5) */ 38 .global i2c_stop 40 i2c_stop: 41 /* prologue: frame size=0 */ 42 /* prologue end (size=0) */ 43 0018 84E9 ldi r24,lo8(-108) 44 001a 8093 BC00 sts 188,r24 45 /* epilogue: frame size=0 */ 46 001e 0895 ret 47 /* epilogue end (size=1) */ 48 /* function i2c_stop size 4 (3) */ 50 .global i2c_write_byte 52 i2c_write_byte: 53 /* prologue: frame size=0 */ 54 /* prologue end (size=0) */ 55 0020 1092 B900 sts 185,__zero_reg__ 56 0024 8093 BB00 sts 187,r24 57 0028 85E8 ldi r24,lo8(-123) 58 002a 8093 BC00 sts 188,r24 59 002e 80E0 ldi r24,lo8(0) 60 0030 90E0 ldi r25,hi8(0) 61 /* epilogue: frame size=0 */ 62 0032 0895 ret 63 /* epilogue end (size=1) */ 64 /* function i2c_write_byte size 10 (9) */ 66 .global __vector_26 68 __vector_26: 69 /* prologue: frame size=0 */ 70 0034 1F92 push __zero_reg__ 71 0036 0F92 push __tmp_reg__ 72 0038 0FB6 in __tmp_reg__,__SREG__ 73 003a 0F92 push __tmp_reg__ 74 003c 1124 clr __zero_reg__ 75 003e 8F93 push r24 76 0040 9F93 push r25 77 0042 EF93 push r30 78 0044 FF93 push r31 79 /* prologue end (size=9) */ 80 0046 8091 0000 lds r24,twi_state 81 004a 8F5F subi r24,lo8(-(1)) 82 004c 8093 0000 sts twi_state,r24 83 0050 8150 subi r24,lo8(-(-1)) 84 0052 8330 cpi r24,lo8(3) 85 0054 01F4 brne .+2 86 0056 00C0 rjmp .L14 87 0058 8430 cpi r24,lo8(4) 88 005a 00F4 brsh .L19 89 005c 8130 cpi r24,lo8(1) 90 005e 01F0 breq .L12 91 0060 8230 cpi r24,lo8(2) 92 0062 00F4 brsh .L13 93 0064 00C0 rjmp .L38 94 .L19: 95 0066 8530 cpi r24,lo8(5) 96 0068 01F4 brne .+2 97 006a 00C0 rjmp .L16 98 006c 8530 cpi r24,lo8(5) 99 006e 00F0 brlo .L15 100 0070 8630 cpi r24,lo8(6) 101 0072 01F4 brne .+2 102 0074 00C0 rjmp .L17 103 0076 8730 cpi r24,lo8(7) 104 0078 01F0 breq .+2 105 007a 00C0 rjmp .L37 106 007c 00C0 rjmp .L18 107 .L38: 108 007e 8091 0000 lds r24,motor 109 0082 880F lsl r24 110 0084 8E5A subi r24,lo8(-(82)) 111 0086 00C0 rjmp .L39 112 .L12: 113 0088 8091 0000 lds r24,motor 114 008c 8F5F subi r24,lo8(-(1)) 115 008e 8093 0000 sts motor,r24 116 0092 8150 subi r24,lo8(-(-1)) 117 0094 8130 cpi r24,lo8(1) 118 0096 01F4 brne .+2 119 0098 00C0 rjmp .L32 120 009a 8130 cpi r24,lo8(1) 121 009c 00F0 brlo .L20 122 009e 8230 cpi r24,lo8(2) 123 00a0 01F4 brne .+2 124 00a2 00C0 rjmp .L33 125 00a4 8330 cpi r24,lo8(3) 126 00a6 01F0 breq .+2 127 00a8 00C0 rjmp .L37 128 00aa 00C0 rjmp .L34 129 .L20: 130 00ac 8091 0000 lds r24,Motor_Vorne 131 .L39: 132 00b0 1092 B900 sts 185,__zero_reg__ 133 00b4 8093 BB00 sts 187,r24 134 00b8 85E8 ldi r24,lo8(-123) 135 .L40: 136 00ba 8093 BC00 sts 188,r24 137 00be 00C0 rjmp .L37 138 .L13: 139 00c0 84E9 ldi r24,lo8(-108) 140 00c2 8093 BC00 sts 188,r24 141 00c6 8091 0000 lds r24,motor 142 00ca 8430 cpi r24,lo8(4) 143 00cc 00F4 brsh .L24 144 00ce 1092 0000 sts twi_state,__zero_reg__ 145 00d2 00C0 rjmp .L26 146 .L24: 147 00d4 1092 0000 sts motor,__zero_reg__ 148 .L26: 149 00d8 85EA ldi r24,lo8(-91) 150 00da 00C0 rjmp .L40 151 .L14: 152 00dc 8091 0000 lds r24,motorread 153 00e0 880F lsl r24 154 00e2 8D5A subi r24,lo8(-(83)) 155 00e4 00C0 rjmp .L39 156 .L15: 157 00e6 8091 0000 lds r24,motorread 158 00ea 8130 cpi r24,lo8(1) 159 00ec 01F0 breq .L32 160 00ee 8130 cpi r24,lo8(1) 161 00f0 00F0 brlo .L20 162 00f2 8230 cpi r24,lo8(2) 163 00f4 01F0 breq .L33 164 00f6 8330 cpi r24,lo8(3) 165 00f8 01F4 brne .L37 166 00fa 00C0 rjmp .L34 167 .L16: 168 00fc 8091 BB00 lds r24,187 169 0100 E091 0000 lds r30,motorread 170 0104 FF27 clr r31 171 0106 E050 subi r30,lo8(-(motor_rx)) 172 0108 F040 sbci r31,hi8(-(motor_rx)) 173 010a 8083 st Z,r24 174 .L17: 175 010c 8091 0000 lds r24,motorread 176 0110 8130 cpi r24,lo8(1) 177 0112 01F0 breq .L32 178 0114 8130 cpi r24,lo8(1) 179 0116 00F0 brlo .L20 180 0118 8230 cpi r24,lo8(2) 181 011a 01F0 breq .L33 182 011c 8330 cpi r24,lo8(3) 183 011e 01F4 brne .L37 184 0120 00C0 rjmp .L34 185 .L32: 186 0122 8091 0000 lds r24,Motor_Hinten 187 0126 00C0 rjmp .L39 188 .L33: 189 0128 8091 0000 lds r24,Motor_Rechts 190 012c 00C0 rjmp .L39 191 .L34: 192 012e 8091 0000 lds r24,Motor_Links 193 0132 00C0 rjmp .L39 194 .L18: 195 0134 8091 0000 lds r24,motorread 196 0138 9091 BB00 lds r25,187 197 013c E82F mov r30,r24 198 013e FF27 clr r31 199 0140 E050 subi r30,lo8(-(motor_rx)) 200 0142 F040 sbci r31,hi8(-(motor_rx)) 201 0144 9483 std Z+4,r25 202 0146 8F5F subi r24,lo8(-(1)) 203 0148 8093 0000 sts motorread,r24 204 014c 8430 cpi r24,lo8(4) 205 014e 00F0 brlo .L35 206 0150 1092 0000 sts motorread,__zero_reg__ 207 .L35: 208 0154 84E9 ldi r24,lo8(-108) 209 0156 8093 BC00 sts 188,r24 210 015a 1092 0000 sts twi_state,__zero_reg__ 211 .L37: 212 /* epilogue: frame size=0 */ 213 015e FF91 pop r31 214 0160 EF91 pop r30 215 0162 9F91 pop r25 216 0164 8F91 pop r24 217 0166 0F90 pop __tmp_reg__ 218 0168 0FBE out __SREG__,__tmp_reg__ 219 016a 0F90 pop __tmp_reg__ 220 016c 1F90 pop __zero_reg__ 221 016e 1895 reti 222 /* epilogue end (size=9) */ 223 /* function __vector_26 size 158 (140) */ 225 .global twi_state 226 .global twi_state 227 .section .bss 230 twi_state: 231 0000 00 .skip 1,0 232 .global motor 233 .global motor 236 motor: 237 0001 00 .skip 1,0 238 .global motorread 239 .global motorread 242 motorread: 243 0002 00 .skip 1,0 244 .comm DiffNick,2,1 245 .comm DiffRoll,2,1 246 .comm SenderOkay,1,1 247 .comm CosinusNickWinkel,1,1 248 .comm CosinusRollWinkel,1,1 249 .comm durchschnitt_northing,4,1 250 .comm durchschnitt_easting,4,1 251 .comm P_GPS_Verstaerkung,2,1 252 .comm D_GPS_Verstaerkung,2,1 253 .comm motor_rx,8,1 254 .comm RemoteTasten,1,1 255 .comm Timeout,1,1 256 .comm IntegralNick,4,1 257 .comm IntegralNick2,4,1 258 .comm IntegralRoll,4,1 259 .comm IntegralRoll2,4,1 260 .comm Mess_IntegralNick,4,1 261 .comm Mess_IntegralNick2,4,1 262 .comm Mess_IntegralRoll,4,1 263 .comm Mess_IntegralRoll2,4,1 264 .comm Integral_Gier,4,1 265 .comm Mess_Integral_Gier,4,1 266 .comm h,1,1 267 .comm m,1,1 268 .comm s,1,1 269 .comm Motor_Vorne,1,1 270 .comm Motor_Hinten,1,1 271 .comm Motor_Rechts,1,1 272 .comm Motor_Links,1,1 273 .comm Count,1,1 274 .comm MotorWert,5,1 275 /* File "twimaster.c": code 184 = 0x00b8 ( 162), prologues 9, epilogues 13 */ DEFINED SYMBOLS *ABS*:00000000 twimaster.c C:\DOKUME~1\none\LOKALE~1\Temp/ccoxlKXd.s:3 *ABS*:0000003f __SREG__ C:\DOKUME~1\none\LOKALE~1\Temp/ccoxlKXd.s:4 *ABS*:0000003e __SP_H__ C:\DOKUME~1\none\LOKALE~1\Temp/ccoxlKXd.s:5 *ABS*:0000003d __SP_L__ C:\DOKUME~1\none\LOKALE~1\Temp/ccoxlKXd.s:6 *ABS*:00000000 __tmp_reg__ C:\DOKUME~1\none\LOKALE~1\Temp/ccoxlKXd.s:7 *ABS*:00000001 __zero_reg__ C:\DOKUME~1\none\LOKALE~1\Temp/ccoxlKXd.s:13 .text:00000000 i2c_init C:\DOKUME~1\none\LOKALE~1\Temp/ccoxlKXd.s:26 .text:0000000c i2c_start C:\DOKUME~1\none\LOKALE~1\Temp/ccoxlKXd.s:40 .text:00000018 i2c_stop C:\DOKUME~1\none\LOKALE~1\Temp/ccoxlKXd.s:52 .text:00000020 i2c_write_byte C:\DOKUME~1\none\LOKALE~1\Temp/ccoxlKXd.s:68 .text:00000034 __vector_26 C:\DOKUME~1\none\LOKALE~1\Temp/ccoxlKXd.s:230 .bss:00000000 twi_state C:\DOKUME~1\none\LOKALE~1\Temp/ccoxlKXd.s:236 .bss:00000001 motor *COM*:00000001 Motor_Vorne C:\DOKUME~1\none\LOKALE~1\Temp/ccoxlKXd.s:242 .bss:00000002 motorread *COM*:00000008 motor_rx *COM*:00000001 Motor_Hinten *COM*:00000001 Motor_Rechts *COM*:00000001 Motor_Links *COM*:00000002 DiffNick *COM*:00000002 DiffRoll *COM*:00000001 SenderOkay *COM*:00000001 CosinusNickWinkel *COM*:00000001 CosinusRollWinkel *COM*:00000004 durchschnitt_northing *COM*:00000004 durchschnitt_easting *COM*:00000002 P_GPS_Verstaerkung *COM*:00000002 D_GPS_Verstaerkung *COM*:00000001 RemoteTasten *COM*:00000001 Timeout *COM*:00000004 IntegralNick *COM*:00000004 IntegralNick2 *COM*:00000004 IntegralRoll *COM*:00000004 IntegralRoll2 *COM*:00000004 Mess_IntegralNick *COM*:00000004 Mess_IntegralNick2 *COM*:00000004 Mess_IntegralRoll *COM*:00000004 Mess_IntegralRoll2 *COM*:00000004 Integral_Gier *COM*:00000004 Mess_Integral_Gier *COM*:00000001 h *COM*:00000001 m *COM*:00000001 s *COM*:00000001 Count *COM*:00000005 MotorWert UNDEFINED SYMBOLS __do_copy_data __do_clear_bss