Subversion Repositories FlightCtrl

Rev

Rev 1189 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1189 Rev 1193
1
   1               		.file	"twimaster.c"
1
   1               		.file	"twimaster.c"
2
   2               	__SREG__ = 0x3f
2
   2               	__SREG__ = 0x3f
3
   3               	__SP_H__ = 0x3e
3
   3               	__SP_H__ = 0x3e
4
   4               	__SP_L__ = 0x3d
4
   4               	__SP_L__ = 0x3d
5
   5               	__tmp_reg__ = 0
5
   5               	__tmp_reg__ = 0
6
   6               	__zero_reg__ = 1
6
   6               	__zero_reg__ = 1
7
   7               		.global __do_copy_data
7
   7               		.global __do_copy_data
8
   8               		.global __do_clear_bss
8
   8               		.global __do_clear_bss
9
   9               		.text
9
   9               		.text
10
  10               	.global	i2c_init
10
  10               	.global	i2c_init
11
  12               	i2c_init:
11
  12               	i2c_init:
12
  13               	/* prologue: frame size=0 */
12
  13               	/* prologue: frame size=0 */
13
  14               	/* prologue end (size=0) */
13
  14               	/* prologue end (size=0) */
14
  15 0000 1092 B900 		sts 185,__zero_reg__
14
  15 0000 1092 B900 		sts 185,__zero_reg__
15
  16 0004 8AE2      		ldi r24,lo8(42)
15
  16 0004 8AE2      		ldi r24,lo8(42)
16
  17 0006 8093 B800 		sts 184,r24
16
  17 0006 8093 B800 		sts 184,r24
17
  18               	/* epilogue: frame size=0 */
17
  18               	/* epilogue: frame size=0 */
18
  19 000a 0895      		ret
18
  19 000a 0895      		ret
19
  20               	/* epilogue end (size=1) */
19
  20               	/* epilogue end (size=1) */
20
  21               	/* function i2c_init size 6 (5) */
20
  21               	/* function i2c_init size 6 (5) */
21
  23               	.global	i2c_start
21
  23               	.global	i2c_start
22
  25               	i2c_start:
22
  25               	i2c_start:
23
  26               	/* prologue: frame size=0 */
23
  26               	/* prologue: frame size=0 */
24
  27               	/* prologue end (size=0) */
24
  27               	/* prologue end (size=0) */
25
  28 000c 85EA      		ldi r24,lo8(-91)
25
  28 000c 85EA      		ldi r24,lo8(-91)
26
  29 000e 8093 BC00 		sts 188,r24
26
  29 000e 8093 BC00 		sts 188,r24
27
  30 0012 80E0      		ldi r24,lo8(0)
27
  30 0012 80E0      		ldi r24,lo8(0)
28
  31 0014 90E0      		ldi r25,hi8(0)
28
  31 0014 90E0      		ldi r25,hi8(0)
29
  32               	/* epilogue: frame size=0 */
29
  32               	/* epilogue: frame size=0 */
30
  33 0016 0895      		ret
30
  33 0016 0895      		ret
31
  34               	/* epilogue end (size=1) */
31
  34               	/* epilogue end (size=1) */
32
  35               	/* function i2c_start size 6 (5) */
32
  35               	/* function i2c_start size 6 (5) */
33
  37               	.global	i2c_stop
33
  37               	.global	i2c_stop
34
  39               	i2c_stop:
34
  39               	i2c_stop:
35
  40               	/* prologue: frame size=0 */
35
  40               	/* prologue: frame size=0 */
36
  41               	/* prologue end (size=0) */
36
  41               	/* prologue end (size=0) */
37
  42 0018 84E9      		ldi r24,lo8(-108)
37
  42 0018 84E9      		ldi r24,lo8(-108)
38
  43 001a 8093 BC00 		sts 188,r24
38
  43 001a 8093 BC00 		sts 188,r24
39
  44               	/* epilogue: frame size=0 */
39
  44               	/* epilogue: frame size=0 */
40
  45 001e 0895      		ret
40
  45 001e 0895      		ret
41
  46               	/* epilogue end (size=1) */
41
  46               	/* epilogue end (size=1) */
42
  47               	/* function i2c_stop size 4 (3) */
42
  47               	/* function i2c_stop size 4 (3) */
43
  49               	.global	i2c_write_byte
43
  49               	.global	i2c_write_byte
44
  51               	i2c_write_byte:
44
  51               	i2c_write_byte:
45
  52               	/* prologue: frame size=0 */
45
  52               	/* prologue: frame size=0 */
46
  53               	/* prologue end (size=0) */
46
  53               	/* prologue end (size=0) */
47
  54 0020 1092 B900 		sts 185,__zero_reg__
47
  54 0020 1092 B900 		sts 185,__zero_reg__
48
  55 0024 8093 BB00 		sts 187,r24
48
  55 0024 8093 BB00 		sts 187,r24
49
  56 0028 85E8      		ldi r24,lo8(-123)
49
  56 0028 85E8      		ldi r24,lo8(-123)
50
  57 002a 8093 BC00 		sts 188,r24
50
  57 002a 8093 BC00 		sts 188,r24
51
  58 002e 80E0      		ldi r24,lo8(0)
51
  58 002e 80E0      		ldi r24,lo8(0)
52
  59 0030 90E0      		ldi r25,hi8(0)
52
  59 0030 90E0      		ldi r25,hi8(0)
53
  60               	/* epilogue: frame size=0 */
53
  60               	/* epilogue: frame size=0 */
54
  61 0032 0895      		ret
54
  61 0032 0895      		ret
55
  62               	/* epilogue end (size=1) */
55
  62               	/* epilogue end (size=1) */
56
  63               	/* function i2c_write_byte size 10 (9) */
56
  63               	/* function i2c_write_byte size 10 (9) */
57
  65               	.global	i2c_reset
57
  65               	.global	i2c_reset
58
  67               	i2c_reset:
58
  67               	i2c_reset:
59
  68               	/* prologue: frame size=0 */
59
  68               	/* prologue: frame size=0 */
60
  69               	/* prologue end (size=0) */
60
  69               	/* prologue end (size=0) */
61
  70 0034 0E94 0000 		call i2c_stop
61
  70 0034 0E94 0000 		call i2c_stop
62
  71 0038 1092 0000 		sts twi_state,__zero_reg__
62
  71 0038 1092 0000 		sts twi_state,__zero_reg__
63
  72 003c EBEB      		ldi r30,lo8(187)
63
  72 003c EBEB      		ldi r30,lo8(187)
64
  73 003e F0E0      		ldi r31,hi8(187)
64
  73 003e F0E0      		ldi r31,hi8(187)
65
  74 0040 8081      		ld r24,Z
65
  74 0040 8081      		ld r24,Z
66
  75 0042 1092 0000 		sts motor,__zero_reg__
66
  75 0042 1092 0000 		sts motor,__zero_reg__
67
  76 0046 80E8      		ldi r24,lo8(-128)
67
  76 0046 80E8      		ldi r24,lo8(-128)
68
  77 0048 8093 BC00 		sts 188,r24
68
  77 0048 8093 BC00 		sts 188,r24
69
  78 004c 1092 BD00 		sts 189,__zero_reg__
69
  78 004c 1092 BD00 		sts 189,__zero_reg__
70
  79 0050 1092 BA00 		sts 186,__zero_reg__
70
  79 0050 1092 BA00 		sts 186,__zero_reg__
71
  80 0054 1082      		st Z,__zero_reg__
71
  80 0054 1082      		st Z,__zero_reg__
72
  81 0056 1092 B900 		sts 185,__zero_reg__
72
  81 0056 1092 B900 		sts 185,__zero_reg__
73
  82 005a 1092 B800 		sts 184,__zero_reg__
73
  82 005a 1092 B800 		sts 184,__zero_reg__
74
  83 005e 0E94 0000 		call i2c_init
74
  83 005e 0E94 0000 		call i2c_init
75
  84 0062 0E94 0000 		call i2c_start
75
  84 0062 0E94 0000 		call i2c_start
76
  85 0066 80E0      		ldi r24,lo8(0)
76
  85 0066 80E0      		ldi r24,lo8(0)
77
  86 0068 0E94 0000 		call i2c_write_byte
77
  86 0068 0E94 0000 		call i2c_write_byte
78
  87               	/* epilogue: frame size=0 */
78
  87               	/* epilogue: frame size=0 */
79
  88 006c 0895      		ret
79
  88 006c 0895      		ret
80
  89               	/* epilogue end (size=1) */
80
  89               	/* epilogue end (size=1) */
81
  90               	/* function i2c_reset size 29 (28) */
81
  90               	/* function i2c_reset size 29 (28) */
82
  92               	.global	__vector_26
82
  92               	.global	__vector_26
83
  94               	__vector_26:
83
  94               	__vector_26:
84
  95               	/* prologue: frame size=0 */
84
  95               	/* prologue: frame size=0 */
85
  96 006e 1F92      		push __zero_reg__
85
  96 006e 1F92      		push __zero_reg__
86
  97 0070 0F92      		push __tmp_reg__
86
  97 0070 0F92      		push __tmp_reg__
87
  98 0072 0FB6      		in __tmp_reg__,__SREG__
87
  98 0072 0FB6      		in __tmp_reg__,__SREG__
88
  99 0074 0F92      		push __tmp_reg__
88
  99 0074 0F92      		push __tmp_reg__
89
 100 0076 1124      		clr __zero_reg__
89
 100 0076 1124      		clr __zero_reg__
90
 101 0078 2F93      		push r18
90
 101 0078 2F93      		push r18
91
 102 007a 3F93      		push r19
91
 102 007a 3F93      		push r19
92
 103 007c 4F93      		push r20
92
 103 007c 4F93      		push r20
93
 104 007e 5F93      		push r21
93
 104 007e 5F93      		push r21
94
 105 0080 6F93      		push r22
94
 105 0080 6F93      		push r22
95
 106 0082 7F93      		push r23
95
 106 0082 7F93      		push r23
96
 107 0084 8F93      		push r24
96
 107 0084 8F93      		push r24
97
 108 0086 9F93      		push r25
97
 108 0086 9F93      		push r25
98
 109 0088 AF93      		push r26
98
 109 0088 AF93      		push r26
99
 110 008a BF93      		push r27
99
 110 008a BF93      		push r27
100
 111 008c EF93      		push r30
100
 111 008c EF93      		push r30
101
 112 008e FF93      		push r31
101
 112 008e FF93      		push r31
102
 113               	/* prologue end (size=17) */
102
 113               	/* prologue end (size=17) */
103
 114 0090 8091 0000 		lds r24,twi_state
103
 114 0090 8091 0000 		lds r24,twi_state
104
 115 0094 8F5F      		subi r24,lo8(-(1))
104
 115 0094 8F5F      		subi r24,lo8(-(1))
105
 116 0096 8093 0000 		sts twi_state,r24
105
 116 0096 8093 0000 		sts twi_state,r24
106
 117 009a 8150      		subi r24,lo8(-(-1))
106
 117 009a 8150      		subi r24,lo8(-(-1))
107
 118 009c E82F      		mov r30,r24
107
 118 009c E82F      		mov r30,r24
108
 119 009e F0E0      		ldi r31,lo8(0)
108
 119 009e F0E0      		ldi r31,lo8(0)
109
 120 00a0 E731      		cpi r30,23
109
 120 00a0 E731      		cpi r30,23
110
 121 00a2 F105      		cpc r31,__zero_reg__
110
 121 00a2 F105      		cpc r31,__zero_reg__
111
 122 00a4 00F0      		brlo .+2
111
 122 00a4 00F0      		brlo .+2
112
 123 00a6 00C0      		rjmp .L12
112
 123 00a6 00C0      		rjmp .L12
113
 124 00a8 E050      		subi r30,lo8(-(gs(.L36)))
113
 124 00a8 E050      		subi r30,lo8(-(gs(.L36)))
114
****  Warning:expression dangerous with linker stubs
114
****  Warning:expression dangerous with linker stubs
115
 125 00aa F040      		sbci r31,hi8(-(gs(.L36)))
115
 125 00aa F040      		sbci r31,hi8(-(gs(.L36)))
116
****  Warning:expression dangerous with linker stubs
116
****  Warning:expression dangerous with linker stubs
117
 126 00ac EE0F      		lsl r30
117
 126 00ac EE0F      		lsl r30
118
 127 00ae FF1F      		rol r31
118
 127 00ae FF1F      		rol r31
119
 128 00b0 0590      		lpm __tmp_reg__,Z+
119
 128 00b0 0590      		lpm __tmp_reg__,Z+
120
 129 00b2 F491      		lpm r31,Z
120
 129 00b2 F491      		lpm r31,Z
121
 130 00b4 E02D      		mov r30,__tmp_reg__
121
 130 00b4 E02D      		mov r30,__tmp_reg__
122
 131 00b6 0994      		ijmp
122
 131 00b6 0994      		ijmp
123
 132               		.data
123
 132               		.data
124
 133               		.section .progmem.gcc_sw_table, "a", @progbits
124
 133               		.section .progmem.gcc_sw_table, "a", @progbits
125
 134               		.p2align 1
125
 134               		.p2align 1
126
 135               	.L36:
126
 135               	.L36:
127
 136               		.data
127
 136               		.data
128
 137               		.section .progmem.gcc_sw_table, "a", @progbits
128
 137               		.section .progmem.gcc_sw_table, "a", @progbits
129
 138               		.p2align 1
129
 138               		.p2align 1
130
 139 0000 0000      		.word gs(.L13)
130
 139 0000 0000      		.word gs(.L13)
131
 140 0002 0000      		.word gs(.L14)
131
 140 0002 0000      		.word gs(.L14)
132
 141 0004 0000      		.word gs(.L15)
132
 141 0004 0000      		.word gs(.L15)
133
 142 0006 0000      		.word gs(.L16)
133
 142 0006 0000      		.word gs(.L16)
134
 143 0008 0000      		.word gs(.L17)
134
 143 0008 0000      		.word gs(.L17)
135
 144 000a 0000      		.word gs(.L18)
135
 144 000a 0000      		.word gs(.L18)
136
 145 000c 0000      		.word gs(.L55)
136
 145 000c 0000      		.word gs(.L55)
137
 146 000e 0000      		.word gs(.L20)
137
 146 000e 0000      		.word gs(.L20)
138
 147 0010 0000      		.word gs(.L31)
138
 147 0010 0000      		.word gs(.L31)
139
 148 0012 0000      		.word gs(.L22)
139
 148 0012 0000      		.word gs(.L22)
140
 149 0014 0000      		.word gs(.L23)
140
 149 0014 0000      		.word gs(.L23)
141
 150 0016 0000      		.word gs(.L34)
141
 150 0016 0000      		.word gs(.L34)
142
 151 0018 0000      		.word gs(.L30)
142
 151 0018 0000      		.word gs(.L30)
143
 152 001a 0000      		.word gs(.L31)
143
 152 001a 0000      		.word gs(.L31)
144
 153 001c 0000      		.word gs(.L27)
144
 153 001c 0000      		.word gs(.L27)
145
 154 001e 0000      		.word gs(.L28)
145
 154 001e 0000      		.word gs(.L28)
146
 155 0020 0000      		.word gs(.L34)
146
 155 0020 0000      		.word gs(.L34)
147
 156 0022 0000      		.word gs(.L30)
147
 156 0022 0000      		.word gs(.L30)
148
 157 0024 0000      		.word gs(.L31)
148
 157 0024 0000      		.word gs(.L31)
149
 158 0026 0000      		.word gs(.L32)
149
 158 0026 0000      		.word gs(.L32)
150
 159 0028 0000      		.word gs(.L33)
150
 159 0028 0000      		.word gs(.L33)
151
 160 002a 0000      		.word gs(.L34)
151
 160 002a 0000      		.word gs(.L34)
152
 161 002c 0000      		.word gs(.L35)
152
 161 002c 0000      		.word gs(.L35)
153
 162               		.text
153
 162               		.text
154
 163               	.L18:
154
 163               	.L18:
155
 164 00b8 8091 BB00 		lds r24,187
155
 164 00b8 8091 BB00 		lds r24,187
156
 165 00bc 9091 0000 		lds r25,motorread
156
 165 00bc 9091 0000 		lds r25,motorread
157
 166 00c0 E92F      		mov r30,r25
157
 166 00c0 E92F      		mov r30,r25
158
 167 00c2 F0E0      		ldi r31,lo8(0)
158
 167 00c2 F0E0      		ldi r31,lo8(0)
159
 168 00c4 E050      		subi r30,lo8(-(motor_rx))
159
 168 00c4 E050      		subi r30,lo8(-(motor_rx))
160
 169 00c6 F040      		sbci r31,hi8(-(motor_rx))
160
 169 00c6 F040      		sbci r31,hi8(-(motor_rx))
161
 170 00c8 8083      		st Z,r24
161
 170 00c8 8083      		st Z,r24
162
 171               	.L19:
162
 171               	.L19:
163
 172 00ca 9130      		cpi r25,lo8(1)
163
 172 00ca 9130      		cpi r25,lo8(1)
164
 173 00cc 01F4      		brne .+2
164
 173 00cc 01F4      		brne .+2
165
 174 00ce 00C0      		rjmp .L49
165
 174 00ce 00C0      		rjmp .L49
166
 175 00d0 9130      		cpi r25,lo8(1)
166
 175 00d0 9130      		cpi r25,lo8(1)
167
 176 00d2 00F4      		brsh .+2
167
 176 00d2 00F4      		brsh .+2
168
 177 00d4 00C0      		rjmp .L48
168
 177 00d4 00C0      		rjmp .L48
169
 178 00d6 9230      		cpi r25,lo8(2)
169
 178 00d6 9230      		cpi r25,lo8(2)
170
 179 00d8 01F4      		brne .+2
170
 179 00d8 01F4      		brne .+2
171
 180 00da 00C0      		rjmp .L50
171
 180 00da 00C0      		rjmp .L50
172
 181 00dc 9330      		cpi r25,lo8(3)
172
 181 00dc 9330      		cpi r25,lo8(3)
173
 182 00de 01F0      		breq .+2
173
 182 00de 01F0      		breq .+2
174
 183 00e0 00C0      		rjmp .L12
174
 183 00e0 00C0      		rjmp .L12
175
 184               	.L51:
175
 184               	.L51:
176
 185 00e2 8091 0000 		lds r24,Motor_Links
176
 185 00e2 8091 0000 		lds r24,Motor_Links
177
 186 00e6 0E94 0000 		call i2c_write_byte
177
 186 00e6 0E94 0000 		call i2c_write_byte
178
 187 00ea 00C0      		rjmp .L12
178
 187 00ea 00C0      		rjmp .L12
179
 188               	.L31:
179
 188               	.L31:
180
 189 00ec 88E9      		ldi r24,lo8(-104)
180
 189 00ec 88E9      		ldi r24,lo8(-104)
181
 190 00ee 0E94 0000 		call i2c_write_byte
181
 190 00ee 0E94 0000 		call i2c_write_byte
182
 191 00f2 00C0      		rjmp .L12
182
 191 00f2 00C0      		rjmp .L12
183
 192               	.L34:
183
 192               	.L34:
184
 193 00f4 80E8      		ldi r24,lo8(-128)
184
 193 00f4 80E8      		ldi r24,lo8(-128)
185
 194 00f6 0E94 0000 		call i2c_write_byte
185
 194 00f6 0E94 0000 		call i2c_write_byte
186
 195 00fa 00C0      		rjmp .L12
186
 195 00fa 00C0      		rjmp .L12
187
 196               	.L30:
187
 196               	.L30:
188
 197 00fc 0E94 0000 		call i2c_stop
188
 197 00fc 0E94 0000 		call i2c_stop
189
 198 0100 8AE0      		ldi r24,lo8(10)
189
 198 0100 8AE0      		ldi r24,lo8(10)
190
 199 0102 90E0      		ldi r25,hi8(10)
190
 199 0102 90E0      		ldi r25,hi8(10)
191
 200 0104 9093 0000 		sts (I2CTimeout)+1,r25
191
 200 0104 9093 0000 		sts (I2CTimeout)+1,r25
192
 201 0108 8093 0000 		sts I2CTimeout,r24
192
 201 0108 8093 0000 		sts I2CTimeout,r24
193
 202               	.L62:
193
 202               	.L62:
194
 203 010c 0E94 0000 		call i2c_start
194
 203 010c 0E94 0000 		call i2c_start
195
 204 0110 00C0      		rjmp .L12
195
 204 0110 00C0      		rjmp .L12
196
 205               	.L20:
196
 205               	.L20:
197
 206 0112 9091 0000 		lds r25,motorread
197
 206 0112 9091 0000 		lds r25,motorread
198
 207 0116 8091 BB00 		lds r24,187
198
 207 0116 8091 BB00 		lds r24,187
199
 208 011a E92F      		mov r30,r25
199
 208 011a E92F      		mov r30,r25
200
 209 011c F0E0      		ldi r31,lo8(0)
200
 209 011c F0E0      		ldi r31,lo8(0)
201
 210 011e E050      		subi r30,lo8(-(motor_rx))
201
 210 011e E050      		subi r30,lo8(-(motor_rx))
202
 211 0120 F040      		sbci r31,hi8(-(motor_rx))
202
 211 0120 F040      		sbci r31,hi8(-(motor_rx))
203
 212 0122 8483      		std Z+4,r24
203
 212 0122 8483      		std Z+4,r24
204
 213 0124 9F5F      		subi r25,lo8(-(1))
204
 213 0124 9F5F      		subi r25,lo8(-(1))
205
 214 0126 9093 0000 		sts motorread,r25
205
 214 0126 9093 0000 		sts motorread,r25
206
 215 012a 9430      		cpi r25,lo8(4)
206
 215 012a 9430      		cpi r25,lo8(4)
207
 216 012c 00F0      		brlo .L35
207
 216 012c 00F0      		brlo .L35
208
 217 012e 1092 0000 		sts motorread,__zero_reg__
208
 217 012e 1092 0000 		sts motorread,__zero_reg__
209
 218               	.L35:
209
 218               	.L35:
210
 219 0132 0E94 0000 		call i2c_stop
210
 219 0132 0E94 0000 		call i2c_stop
211
 220 0136 8AE0      		ldi r24,lo8(10)
211
 220 0136 8AE0      		ldi r24,lo8(10)
212
 221 0138 90E0      		ldi r25,hi8(10)
212
 221 0138 90E0      		ldi r25,hi8(10)
213
 222 013a 9093 0000 		sts (I2CTimeout)+1,r25
213
 222 013a 9093 0000 		sts (I2CTimeout)+1,r25
214
 223 013e 8093 0000 		sts I2CTimeout,r24
214
 223 013e 8093 0000 		sts I2CTimeout,r24
215
 224 0142 1092 0000 		sts twi_state,__zero_reg__
215
 224 0142 1092 0000 		sts twi_state,__zero_reg__
216
 225 0146 00C0      		rjmp .L12
216
 225 0146 00C0      		rjmp .L12
217
 226               	.L15:
217
 226               	.L15:
218
 227 0148 0E94 0000 		call i2c_stop
218
 227 0148 0E94 0000 		call i2c_stop
219
 228 014c 8091 0000 		lds r24,motor
219
 228 014c 8091 0000 		lds r24,motor
220
 229 0150 8430      		cpi r24,lo8(4)
220
 229 0150 8430      		cpi r24,lo8(4)
221
 230 0152 00F0      		brlo .+2
221
 230 0152 00F0      		brlo .+2
222
 231 0154 00C0      		rjmp .L41
222
 231 0154 00C0      		rjmp .L41
223
 232 0156 1092 0000 		sts twi_state,__zero_reg__
223
 232 0156 1092 0000 		sts twi_state,__zero_reg__
224
 233 015a 00C0      		rjmp .L62
224
 233 015a 00C0      		rjmp .L62
225
 234               	.L33:
225
 234               	.L33:
226
 235 015c 8091 0000 		lds r24,AnalogOffsetGier
226
 235 015c 8091 0000 		lds r24,AnalogOffsetGier
227
 236 0160 0E94 0000 		call i2c_write_byte
227
 236 0160 0E94 0000 		call i2c_write_byte
228
 237 0164 00C0      		rjmp .L12
228
 237 0164 00C0      		rjmp .L12
229
 238               	.L23:
229
 238               	.L23:
230
 239 0166 8091 0000 		lds r24,AnalogOffsetNick
230
 239 0166 8091 0000 		lds r24,AnalogOffsetNick
231
 240 016a 0E94 0000 		call i2c_write_byte
231
 240 016a 0E94 0000 		call i2c_write_byte
232
 241 016e 00C0      		rjmp .L12
232
 241 016e 00C0      		rjmp .L12
233
 242               	.L13:
233
 242               	.L13:
234
 243 0170 8091 0000 		lds r24,motor
234
 243 0170 8091 0000 		lds r24,motor
235
 244 0174 880F      		lsl r24
235
 244 0174 880F      		lsl r24
236
 245 0176 8E5A      		subi r24,lo8(-(82))
236
 245 0176 8E5A      		subi r24,lo8(-(82))
237
 246 0178 0E94 0000 		call i2c_write_byte
237
 246 0178 0E94 0000 		call i2c_write_byte
238
 247 017c 00C0      		rjmp .L12
238
 247 017c 00C0      		rjmp .L12
239
 248               	.L22:
239
 248               	.L22:
240
 249 017e 80E1      		ldi r24,lo8(16)
240
 249 017e 80E1      		ldi r24,lo8(16)
241
 250 0180 0E94 0000 		call i2c_write_byte
241
 250 0180 0E94 0000 		call i2c_write_byte
242
 251 0184 00C0      		rjmp .L12
242
 251 0184 00C0      		rjmp .L12
243
 252               	.L17:
243
 252               	.L17:
244
 253 0186 8091 0000 		lds r24,motorread
244
 253 0186 8091 0000 		lds r24,motorread
245
 254 018a 8130      		cpi r24,lo8(1)
245
 254 018a 8130      		cpi r24,lo8(1)
246
 255 018c 01F0      		breq .L49
246
 255 018c 01F0      		breq .L49
247
 256               	.L61:
247
 256               	.L61:
248
 257 018e 8130      		cpi r24,lo8(1)
248
 257 018e 8130      		cpi r24,lo8(1)
249
 258 0190 00F0      		brlo .L48
249
 258 0190 00F0      		brlo .L48
250
 259 0192 8230      		cpi r24,lo8(2)
250
 259 0192 8230      		cpi r24,lo8(2)
251
 260 0194 01F0      		breq .L50
251
 260 0194 01F0      		breq .L50
252
 261 0196 8330      		cpi r24,lo8(3)
252
 261 0196 8330      		cpi r24,lo8(3)
253
 262 0198 01F4      		brne .L12
253
 262 0198 01F4      		brne .L12
254
 263 019a 00C0      		rjmp .L51
254
 263 019a 00C0      		rjmp .L51
255
 264               	.L14:
255
 264               	.L14:
256
 265 019c 8091 0000 		lds r24,motor
256
 265 019c 8091 0000 		lds r24,motor
257
 266 01a0 8F5F      		subi r24,lo8(-(1))
257
 266 01a0 8F5F      		subi r24,lo8(-(1))
258
 267 01a2 8093 0000 		sts motor,r24
258
 267 01a2 8093 0000 		sts motor,r24
259
 268 01a6 8150      		subi r24,lo8(-(-1))
259
 268 01a6 8150      		subi r24,lo8(-(-1))
260
 269 01a8 8130      		cpi r24,lo8(1)
260
 269 01a8 8130      		cpi r24,lo8(1)
261
 270 01aa 01F4      		brne .L61
261
 270 01aa 01F4      		brne .L61
262
 271               	.L49:
262
 271               	.L49:
263
 272 01ac 8091 0000 		lds r24,Motor_Hinten
263
 272 01ac 8091 0000 		lds r24,Motor_Hinten
264
 273 01b0 0E94 0000 		call i2c_write_byte
264
 273 01b0 0E94 0000 		call i2c_write_byte
265
 274 01b4 00C0      		rjmp .L12
265
 274 01b4 00C0      		rjmp .L12
266
 275               	.L32:
266
 275               	.L32:
267
 276 01b6 84E1      		ldi r24,lo8(20)
267
 276 01b6 84E1      		ldi r24,lo8(20)
268
 277 01b8 0E94 0000 		call i2c_write_byte
268
 277 01b8 0E94 0000 		call i2c_write_byte
269
 278 01bc 00C0      		rjmp .L12
269
 278 01bc 00C0      		rjmp .L12
270
 279               	.L28:
270
 279               	.L28:
271
 280 01be 8091 0000 		lds r24,AnalogOffsetRoll
271
 280 01be 8091 0000 		lds r24,AnalogOffsetRoll
272
 281 01c2 0E94 0000 		call i2c_write_byte
272
 281 01c2 0E94 0000 		call i2c_write_byte
273
 282 01c6 00C0      		rjmp .L12
273
 282 01c6 00C0      		rjmp .L12
274
 283               	.L27:
274
 283               	.L27:
275
 284 01c8 82E1      		ldi r24,lo8(18)
275
 284 01c8 82E1      		ldi r24,lo8(18)
276
 285 01ca 0E94 0000 		call i2c_write_byte
276
 285 01ca 0E94 0000 		call i2c_write_byte
277
 286 01ce 00C0      		rjmp .L12
277
 286 01ce 00C0      		rjmp .L12
278
 287               	.L16:
278
 287               	.L16:
279
 288 01d0 8091 0000 		lds r24,motorread
279
 288 01d0 8091 0000 		lds r24,motorread
280
 289 01d4 880F      		lsl r24
280
 289 01d4 880F      		lsl r24
281
 290 01d6 8D5A      		subi r24,lo8(-(83))
281
 290 01d6 8D5A      		subi r24,lo8(-(83))
282
 291 01d8 0E94 0000 		call i2c_write_byte
282
 291 01d8 0E94 0000 		call i2c_write_byte
283
 292 01dc 00C0      		rjmp .L12
283
 292 01dc 00C0      		rjmp .L12
284
 293               	.L55:
284
 293               	.L55:
285
 294 01de 9091 0000 		lds r25,motorread
285
 294 01de 9091 0000 		lds r25,motorread
286
 295 01e2 00C0      		rjmp .L19
286
 295 01e2 00C0      		rjmp .L19
287
 296               	.L48:
287
 296               	.L48:
288
 297 01e4 8091 0000 		lds r24,Motor_Vorne
288
 297 01e4 8091 0000 		lds r24,Motor_Vorne
289
 298 01e8 0E94 0000 		call i2c_write_byte
289
 298 01e8 0E94 0000 		call i2c_write_byte
290
 299 01ec 00C0      		rjmp .L12
290
 299 01ec 00C0      		rjmp .L12
291
 300               	.L50:
291
 300               	.L50:
292
 301 01ee 8091 0000 		lds r24,Motor_Rechts
292
 301 01ee 8091 0000 		lds r24,Motor_Rechts
293
 302 01f2 0E94 0000 		call i2c_write_byte
293
 302 01f2 0E94 0000 		call i2c_write_byte
294
 303 01f6 00C0      		rjmp .L12
294
 303 01f6 00C0      		rjmp .L12
295
 304               	.L41:
295
 304               	.L41:
296
 305 01f8 1092 0000 		sts motor,__zero_reg__
296
 305 01f8 1092 0000 		sts motor,__zero_reg__
297
 306 01fc 00C0      		rjmp .L62
297
 306 01fc 00C0      		rjmp .L62
298
 307               	.L12:
298
 307               	.L12:
299
 308 01fe 8091 BC00 		lds r24,188
299
 308 01fe 8091 BC00 		lds r24,188
300
 309 0202 8068      		ori r24,lo8(-128)
300
 309 0202 8068      		ori r24,lo8(-128)
301
 310 0204 8093 BC00 		sts 188,r24
301
 310 0204 8093 BC00 		sts 188,r24
302
 311               	/* epilogue: frame size=0 */
302
 311               	/* epilogue: frame size=0 */
303
 312 0208 FF91      		pop r31
303
 312 0208 FF91      		pop r31
304
 313 020a EF91      		pop r30
304
 313 020a EF91      		pop r30
305
 314 020c BF91      		pop r27
305
 314 020c BF91      		pop r27
306
 315 020e AF91      		pop r26
306
 315 020e AF91      		pop r26
307
 316 0210 9F91      		pop r25
307
 316 0210 9F91      		pop r25
308
 317 0212 8F91      		pop r24
308
 317 0212 8F91      		pop r24
309
 318 0214 7F91      		pop r23
309
 318 0214 7F91      		pop r23
310
 319 0216 6F91      		pop r22
310
 319 0216 6F91      		pop r22
311
 320 0218 5F91      		pop r21
311
 320 0218 5F91      		pop r21
312
 321 021a 4F91      		pop r20
312
 321 021a 4F91      		pop r20
313
 322 021c 3F91      		pop r19
313
 322 021c 3F91      		pop r19
314
 323 021e 2F91      		pop r18
314
 323 021e 2F91      		pop r18
315
 324 0220 0F90      		pop __tmp_reg__
315
 324 0220 0F90      		pop __tmp_reg__
316
 325 0222 0FBE      		out __SREG__,__tmp_reg__
316
 325 0222 0FBE      		out __SREG__,__tmp_reg__
317
 326 0224 0F90      		pop __tmp_reg__
317
 326 0224 0F90      		pop __tmp_reg__
318
 327 0226 1F90      		pop __zero_reg__
318
 327 0226 1F90      		pop __zero_reg__
319
 328 0228 1895      		reti
319
 328 0228 1895      		reti
320
 329               	/* epilogue end (size=17) */
320
 329               	/* epilogue end (size=17) */
321
 330               	/* function __vector_26 size 245 (211) */
321
 330               	/* function __vector_26 size 245 (211) */
322
 332               	.global	twi_state
322
 332               	.global	twi_state
323
 333               	.global	twi_state
323
 333               	.global	twi_state
324
 334               		.section .bss
324
 334               		.section .bss
325
 337               	twi_state:
325
 337               	twi_state:
326
 338 0000 00        		.skip 1,0
326
 338 0000 00        		.skip 1,0
327
 339               	.global	motor
327
 339               	.global	motor
328
 340               	.global	motor
328
 340               	.global	motor
329
 343               	motor:
329
 343               	motor:
330
 344 0001 00        		.skip 1,0
330
 344 0001 00        		.skip 1,0
331
 345               	.global	motorread
331
 345               	.global	motorread
332
 346               	.global	motorread
332
 346               	.global	motorread
333
 349               	motorread:
333
 349               	motorread:
334
 350 0002 00        		.skip 1,0
334
 350 0002 00        		.skip 1,0
335
 351               		.comm motor_rx,16,1
335
 351               		.comm motor_rx,16,1
336
 352               	/* File "twimaster.c": code  300 = 0x012c ( 261), prologues  17, epilogues  22 */
336
 352               	/* File "twimaster.c": code  300 = 0x012c ( 261), prologues  17, epilogues  22 */
337
DEFINED SYMBOLS
337
DEFINED SYMBOLS
338
                            *ABS*:00000000 twimaster.c
338
                            *ABS*:00000000 twimaster.c
339
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccactjaa.s:2      *ABS*:0000003f __SREG__
339
C:\DOKUME~1\David\LOKALE~1\Temp/ccjYjA6X.s:2      *ABS*:0000003f __SREG__
340
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccactjaa.s:3      *ABS*:0000003e __SP_H__
340
C:\DOKUME~1\David\LOKALE~1\Temp/ccjYjA6X.s:3      *ABS*:0000003e __SP_H__
341
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccactjaa.s:4      *ABS*:0000003d __SP_L__
341
C:\DOKUME~1\David\LOKALE~1\Temp/ccjYjA6X.s:4      *ABS*:0000003d __SP_L__
342
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccactjaa.s:5      *ABS*:00000000 __tmp_reg__
342
C:\DOKUME~1\David\LOKALE~1\Temp/ccjYjA6X.s:5      *ABS*:00000000 __tmp_reg__
343
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccactjaa.s:6      *ABS*:00000001 __zero_reg__
343
C:\DOKUME~1\David\LOKALE~1\Temp/ccjYjA6X.s:6      *ABS*:00000001 __zero_reg__
344
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccactjaa.s:12     .text:00000000 i2c_init
344
C:\DOKUME~1\David\LOKALE~1\Temp/ccjYjA6X.s:12     .text:00000000 i2c_init
345
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccactjaa.s:25     .text:0000000c i2c_start
345
C:\DOKUME~1\David\LOKALE~1\Temp/ccjYjA6X.s:25     .text:0000000c i2c_start
346
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccactjaa.s:39     .text:00000018 i2c_stop
346
C:\DOKUME~1\David\LOKALE~1\Temp/ccjYjA6X.s:39     .text:00000018 i2c_stop
347
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccactjaa.s:51     .text:00000020 i2c_write_byte
347
C:\DOKUME~1\David\LOKALE~1\Temp/ccjYjA6X.s:51     .text:00000020 i2c_write_byte
348
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccactjaa.s:67     .text:00000034 i2c_reset
348
C:\DOKUME~1\David\LOKALE~1\Temp/ccjYjA6X.s:67     .text:00000034 i2c_reset
349
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccactjaa.s:337    .bss:00000000 twi_state
349
C:\DOKUME~1\David\LOKALE~1\Temp/ccjYjA6X.s:337    .bss:00000000 twi_state
350
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccactjaa.s:343    .bss:00000001 motor
350
C:\DOKUME~1\David\LOKALE~1\Temp/ccjYjA6X.s:343    .bss:00000001 motor
351
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccactjaa.s:94     .text:0000006e __vector_26
351
C:\DOKUME~1\David\LOKALE~1\Temp/ccjYjA6X.s:94     .text:0000006e __vector_26
352
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccactjaa.s:349    .bss:00000002 motorread
352
C:\DOKUME~1\David\LOKALE~1\Temp/ccjYjA6X.s:349    .bss:00000002 motorread
353
                            *COM*:00000010 motor_rx
353
                            *COM*:00000010 motor_rx
354
 
354
 
355
UNDEFINED SYMBOLS
355
UNDEFINED SYMBOLS
356
__do_copy_data
356
__do_copy_data
357
__do_clear_bss
357
__do_clear_bss
358
Motor_Links
358
Motor_Links
359
I2CTimeout
359
I2CTimeout
360
AnalogOffsetGier
360
AnalogOffsetGier
361
AnalogOffsetNick
361
AnalogOffsetNick
362
Motor_Hinten
362
Motor_Hinten
363
AnalogOffsetRoll
363
AnalogOffsetRoll
364
Motor_Vorne
364
Motor_Vorne
365
Motor_Rechts
365
Motor_Rechts