Subversion Repositories FlightCtrl

Rev

Details | Last modification | View Log | RSS feed

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