Go to most recent revision | Blame | Last modification | View Log | RSS feed
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 /* epilogue: frame size=0 */
32 0012 0895 ret
33 /* epilogue end (size=1) */
34 /* function i2c_start size 4 (3) */
36 .global i2c_stop
38 i2c_stop:
39 /* prologue: frame size=0 */
40 /* prologue end (size=0) */
41 0014 84E9 ldi r24,lo8(-108)
42 0016 8093 BC00 sts 188,r24
43 /* epilogue: frame size=0 */
44 001a 0895 ret
45 /* epilogue end (size=1) */
46 /* function i2c_stop size 4 (3) */
48 .global i2c_write_byte
50 i2c_write_byte:
51 /* prologue: frame size=0 */
52 /* prologue end (size=0) */
53 001c 8093 BB00 sts 187,r24
54 0020 85E8 ldi r24,lo8(-123)
55 0022 8093 BC00 sts 188,r24
56 /* epilogue: frame size=0 */
57 0026 0895 ret
58 /* epilogue end (size=1) */
59 /* function i2c_write_byte size 6 (5) */
61 .global i2c_receive_byte
63 i2c_receive_byte:
64 /* prologue: frame size=0 */
65 /* prologue end (size=0) */
66 0028 85EC ldi r24,lo8(-59)
67 002a 8093 BC00 sts 188,r24
68 /* epilogue: frame size=0 */
69 002e 0895 ret
70 /* epilogue end (size=1) */
71 /* function i2c_receive_byte size 4 (3) */
73 .global i2c_receive_last_byte
75 i2c_receive_last_byte:
76 /* prologue: frame size=0 */
77 /* prologue end (size=0) */
78 0030 85E8 ldi r24,lo8(-123)
79 0032 8093 BC00 sts 188,r24
80 /* epilogue: frame size=0 */
81 0036 0895 ret
82 /* epilogue end (size=1) */
83 /* function i2c_receive_last_byte size 4 (3) */
85 .global __vector_26
87 __vector_26:
88 /* prologue: frame size=0 */
89 0038 1F92 push __zero_reg__
90 003a 0F92 push __tmp_reg__
91 003c 0FB6 in __tmp_reg__,__SREG__
92 003e 0F92 push __tmp_reg__
93 0040 1124 clr __zero_reg__
94 0042 8F93 push r24
95 0044 9F93 push r25
96 0046 EF93 push r30
97 0048 FF93 push r31
98 /* prologue end (size=9) */
99 004a 8091 0000 lds r24,twi_state
100 004e 8F5F subi r24,lo8(-(1))
101 0050 8093 0000 sts twi_state,r24
102 0054 8150 subi r24,lo8(-(-1))
103 0056 8330 cpi r24,lo8(3)
104 0058 01F0 breq .L18
105 005a 8430 cpi r24,lo8(4)
106 005c 00F4 brsh .L22
107 005e 8130 cpi r24,lo8(1)
108 0060 01F0 breq .L16
109 0062 8230 cpi r24,lo8(2)
110 0064 00F4 brsh .L17
111 0066 00C0 rjmp .L32
112 .L22:
113 0068 8530 cpi r24,lo8(5)
114 006a 01F0 breq .L20
115 006c 8530 cpi r24,lo8(5)
116 006e 00F0 brlo .L19
117 0070 8630 cpi r24,lo8(6)
118 0072 01F0 breq .+2
119 0074 00C0 rjmp .L14
120 0076 00C0 rjmp .L21
121 .L32:
122 0078 8091 0000 lds r24,motor
123 007c 880F lsl r24
124 007e 8E5A subi r24,lo8(-(82))
125 0080 00C0 rjmp .L33
126 .L16:
127 0082 8091 0000 lds r24,motor
128 0086 8F5F subi r24,lo8(-(1))
129 0088 8093 0000 sts motor,r24
130 008c 8150 subi r24,lo8(-(-1))
131 008e 8130 cpi r24,lo8(1)
132 0090 01F0 breq .L25
133 0092 8130 cpi r24,lo8(1)
134 0094 00F0 brlo .L24
135 0096 8230 cpi r24,lo8(2)
136 0098 01F0 breq .L26
137 009a 8330 cpi r24,lo8(3)
138 009c 01F0 breq .+2
139 009e 00C0 rjmp .L31
140 00a0 00C0 rjmp .L27
141 .L24:
142 00a2 8091 0000 lds r24,Motor_Vorne
143 .L33:
144 00a6 8093 BB00 sts 187,r24
145 .L34:
146 00aa 85E8 ldi r24,lo8(-123)
147 .L35:
148 00ac 8093 BC00 sts 188,r24
149 00b0 00C0 rjmp .L31
150 .L25:
151 00b2 8091 0000 lds r24,Motor_Hinten
152 00b6 00C0 rjmp .L33
153 .L26:
154 00b8 8091 0000 lds r24,Motor_Rechts
155 00bc 00C0 rjmp .L33
156 .L27:
157 00be 8091 0000 lds r24,Motor_Links
158 00c2 00C0 rjmp .L33
159 .L17:
160 00c4 8091 0000 lds r24,motor
161 00c8 8430 cpi r24,lo8(4)
162 00ca 00F4 brsh .L28
163 00cc 1092 0000 sts twi_state,__zero_reg__
164 .L28:
165 00d0 85EA ldi r24,lo8(-91)
166 00d2 00C0 rjmp .L35
167 .L18:
168 00d4 8091 0000 lds r24,motorread.2054
169 00d8 880F lsl r24
170 00da 8D5A subi r24,lo8(-(83))
171 00dc 00C0 rjmp .L33
172 .L19:
173 00de 85EC ldi r24,lo8(-59)
174 00e0 00C0 rjmp .L35
175 .L20:
176 00e2 8091 BB00 lds r24,187
177 00e6 E091 0000 lds r30,motorread.2054
178 00ea FF27 clr r31
179 00ec E050 subi r30,lo8(-(motor_rx))
180 00ee F040 sbci r31,hi8(-(motor_rx))
181 00f0 8083 st Z,r24
182 00f2 00C0 rjmp .L34
183 .L21:
184 00f4 8091 0000 lds r24,motorread.2054
185 00f8 9091 BB00 lds r25,187
186 00fc E82F mov r30,r24
187 00fe FF27 clr r31
188 0100 E050 subi r30,lo8(-(motor_rx))
189 0102 F040 sbci r31,hi8(-(motor_rx))
190 0104 9483 std Z+4,r25
191 0106 8F5F subi r24,lo8(-(1))
192 0108 8093 0000 sts motorread.2054,r24
193 010c 8430 cpi r24,lo8(4)
194 010e 00F0 brlo .L14
195 0110 1092 0000 sts motorread.2054,__zero_reg__
196 .L14:
197 0114 84E9 ldi r24,lo8(-108)
198 0116 8093 BC00 sts 188,r24
199 011a 1092 0000 sts twi_state,__zero_reg__
200 011e 8AE0 ldi r24,lo8(10)
201 0120 90E0 ldi r25,hi8(10)
202 0122 9093 0000 sts (I2CTimeout)+1,r25
203 0126 8093 0000 sts I2CTimeout,r24
204 012a 1092 0000 sts motor,__zero_reg__
205 .L31:
206 /* epilogue: frame size=0 */
207 012e FF91 pop r31
208 0130 EF91 pop r30
209 0132 9F91 pop r25
210 0134 8F91 pop r24
211 0136 0F90 pop __tmp_reg__
212 0138 0FBE out __SREG__,__tmp_reg__
213 013a 0F90 pop __tmp_reg__
214 013c 1F90 pop __zero_reg__
215 013e 1895 reti
216 /* epilogue end (size=9) */
217 /* function __vector_26 size 132 (114) */
219 .global i2c_reset
221 i2c_reset:
222 /* prologue: frame size=0 */
223 /* prologue end (size=0) */
224 0140 4CEB ldi r20,lo8(188)
225 0142 50E0 ldi r21,hi8(188)
226 0144 84E9 ldi r24,lo8(-108)
227 0146 FA01 movw r30,r20
228 0148 8083 st Z,r24
229 014a 1092 0000 sts twi_state,__zero_reg__
230 014e 2BEB ldi r18,lo8(187)
231 0150 30E0 ldi r19,hi8(187)
232 0152 F901 movw r30,r18
233 0154 8081 ld r24,Z
234 0156 1092 0000 sts motor,__zero_reg__
235 015a 80E8 ldi r24,lo8(-128)
236 015c FA01 movw r30,r20
237 015e 8083 st Z,r24
238 0160 1092 BD00 sts 189,__zero_reg__
239 0164 1092 BA00 sts 186,__zero_reg__
240 0168 F901 movw r30,r18
241 016a 1082 st Z,__zero_reg__
242 016c E9EB ldi r30,lo8(185)
243 016e F0E0 ldi r31,hi8(185)
244 0170 1082 st Z,__zero_reg__
245 0172 A8EB ldi r26,lo8(184)
246 0174 B0E0 ldi r27,hi8(184)
247 0176 1C92 st X,__zero_reg__
248 0178 1082 st Z,__zero_reg__
249 017a 8AE2 ldi r24,lo8(42)
250 017c 8C93 st X,r24
251 017e 85EA ldi r24,lo8(-91)
252 0180 FA01 movw r30,r20
253 0182 8083 st Z,r24
254 0184 F901 movw r30,r18
255 0186 1082 st Z,__zero_reg__
256 0188 85E8 ldi r24,lo8(-123)
257 018a FA01 movw r30,r20
258 018c 8083 st Z,r24
259 /* epilogue: frame size=0 */
260 018e 0895 ret
261 /* epilogue end (size=1) */
262 /* function i2c_reset size 40 (39) */
264 .global twi_state
265 .global twi_state
266 .section .bss
269 twi_state:
270 0000 00 .skip 1,0
271 .global motor
272 .global motor
275 motor:
276 0001 00 .skip 1,0
277 .lcomm motorread.2054,1
278 .comm motor_rx,8,1
279 /* File "twimaster.c": code 200 = 0x00c8 ( 175), prologues 9, epilogues 16 */
DEFINED SYMBOLS
*ABS*:00000000 twimaster.c
C:\DOKUME~1\PIMMEL~1\LOKALE~1\Temp/ccKlLSZ4.s:3 *ABS*:0000003f __SREG__
C:\DOKUME~1\PIMMEL~1\LOKALE~1\Temp/ccKlLSZ4.s:4 *ABS*:0000003e __SP_H__
C:\DOKUME~1\PIMMEL~1\LOKALE~1\Temp/ccKlLSZ4.s:5 *ABS*:0000003d __SP_L__
C:\DOKUME~1\PIMMEL~1\LOKALE~1\Temp/ccKlLSZ4.s:6 *ABS*:00000000 __tmp_reg__
C:\DOKUME~1\PIMMEL~1\LOKALE~1\Temp/ccKlLSZ4.s:7 *ABS*:00000001 __zero_reg__
C:\DOKUME~1\PIMMEL~1\LOKALE~1\Temp/ccKlLSZ4.s:13 .text:00000000 i2c_init
C:\DOKUME~1\PIMMEL~1\LOKALE~1\Temp/ccKlLSZ4.s:26 .text:0000000c i2c_start
C:\DOKUME~1\PIMMEL~1\LOKALE~1\Temp/ccKlLSZ4.s:38 .text:00000014 i2c_stop
C:\DOKUME~1\PIMMEL~1\LOKALE~1\Temp/ccKlLSZ4.s:50 .text:0000001c i2c_write_byte
C:\DOKUME~1\PIMMEL~1\LOKALE~1\Temp/ccKlLSZ4.s:63 .text:00000028 i2c_receive_byte
C:\DOKUME~1\PIMMEL~1\LOKALE~1\Temp/ccKlLSZ4.s:75 .text:00000030 i2c_receive_last_byte
C:\DOKUME~1\PIMMEL~1\LOKALE~1\Temp/ccKlLSZ4.s:87 .text:00000038 __vector_26
C:\DOKUME~1\PIMMEL~1\LOKALE~1\Temp/ccKlLSZ4.s:269 .bss:00000000 twi_state
C:\DOKUME~1\PIMMEL~1\LOKALE~1\Temp/ccKlLSZ4.s:275 .bss:00000001 motor
.bss:00000002 motorread.2054
*COM*:00000008 motor_rx
C:\DOKUME~1\PIMMEL~1\LOKALE~1\Temp/ccKlLSZ4.s:221 .text:00000140 i2c_reset
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
Motor_Vorne
Motor_Hinten
Motor_Rechts
Motor_Links
I2CTimeout