Subversion Repositories FlightCtrl

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1997 - 1
   1               		.file	"capacity.c"
2
   2               		.arch atmega1284p
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               	.global	update_timer
11
  11               	.global	update_timer
12
  12               		.section .bss
13
  15               	update_timer:
14
  16 0000 0000      		.skip 2,0
15
  17               		.text
16
  18               	.global	Capacity_Init
17
  20               	Capacity_Init:
18
  21               	/* prologue: frame size=0 */
19
  22               	/* prologue end (size=0) */
20
  23 0000 1092 0000 		sts (Capacity)+1,__zero_reg__
21
  24 0004 1092 0000 		sts Capacity,__zero_reg__
22
  25 0008 1092 0000 		sts (Capacity+4)+1,__zero_reg__
23
  26 000c 1092 0000 		sts Capacity+4,__zero_reg__
24
  27 0010 1092 0000 		sts (Capacity+2)+1,__zero_reg__
25
  28 0014 1092 0000 		sts Capacity+2,__zero_reg__
26
  29 0018 1092 0000 		sts Capacity+8,__zero_reg__
27
  30 001c 9091 0000 		lds r25,EE_Parameter+41
28
  31 0020 84E6      		ldi r24,lo8(100)
29
  32 0022 989F      		mul r25,r24
30
  33 0024 C001      		movw r24,r0
31
  34 0026 1124      		clr r1
32
  35 0028 9093 0000 		sts (Capacity+6)+1,r25
33
  36 002c 8093 0000 		sts Capacity+6,r24
34
  37 0030 8AE0      		ldi r24,lo8(10)
35
  38 0032 90E0      		ldi r25,hi8(10)
36
  39 0034 0E94 0000 		call SetDelay
37
  40 0038 9093 0000 		sts (update_timer)+1,r25
38
  41 003c 8093 0000 		sts update_timer,r24
39
  42               	/* epilogue: frame size=0 */
40
  43 0040 0895      		ret
41
  44               	/* epilogue end (size=1) */
42
  45               	/* function Capacity_Init size 33 (32) */
43
  47               		.lcomm SubCounter.0,2
44
  48               		.lcomm CurrentOffset.1,2
45
  49               		.lcomm SumCurrentOffset.2,4
46
  50               	.global	Capacity_Update
47
  52               	Capacity_Update:
48
  53               	/* prologue: frame size=0 */
49
  54 0042 CF93      		push r28
50
  55 0044 DF93      		push r29
51
  56               	/* prologue end (size=2) */
52
  57 0046 8091 0000 		lds r24,update_timer
53
  58 004a 9091 0000 		lds r25,(update_timer)+1
54
  59 004e 0E94 0000 		call CheckDelay
55
  60 0052 8823      		tst r24
56
  61 0054 01F4      		brne .+2
57
  62 0056 00C0      		rjmp .L2
58
  63 0058 8091 0000 		lds r24,update_timer
59
  64 005c 9091 0000 		lds r25,(update_timer)+1
60
  65 0060 0A96      		adiw r24,10
61
  66 0062 9093 0000 		sts (update_timer)+1,r25
62
  67 0066 8093 0000 		sts update_timer,r24
63
  68 006a E0E0      		ldi r30,lo8(0)
64
  69 006c F0E0      		ldi r31,hi8(0)
65
  70 006e 9F01      		movw r18,r30
66
  71 0070 90E0      		ldi r25,lo8(0)
67
  72 0072 5FEF      		ldi r21,lo8(-1)
68
  73 0074 A0E0      		ldi r26,lo8(Motor)
69
  74 0076 B0E0      		ldi r27,hi8(Motor)
70
  75 0078 4BE0      		ldi r20,lo8(11)
71
  76               	.L9:
72
  77 007a ED01      		movw r28,r26
73
  78 007c 8B81      		ldd r24,Y+3
74
  79 007e 87FF      		sbrs r24,7
75
  80 0080 00C0      		rjmp .L6
76
  81 0082 9F5F      		subi r25,lo8(-(1))
77
  82 0084 8D81      		ldd r24,Y+5
78
  83 0086 E80F      		add r30,r24
79
  84 0088 F11D      		adc r31,__zero_reg__
80
  85 008a 8981      		ldd r24,Y+1
81
  86 008c 280F      		add r18,r24
82
  87 008e 311D      		adc r19,__zero_reg__
83
  88 0090 8E81      		ldd r24,Y+6
84
  89 0092 8517      		cp r24,r21
85
  90 0094 00F4      		brsh .L6
86
  91 0096 582F      		mov r21,r24
87
  92               	.L6:
88
  93 0098 4150      		subi r20,lo8(-(-1))
89
  94 009a 1896      		adiw r26,8
90
  95 009c 47FF      		sbrs r20,7
91
  96 009e 00C0      		rjmp .L9
92
  97 00a0 5093 0000 		sts Capacity+8,r21
93
  98 00a4 232B      		or r18,r19
94
  99 00a6 01F4      		brne .L10
95
 100 00a8 2091 0000 		lds r18,SumCurrentOffset.2
96
 101 00ac 3091 0000 		lds r19,(SumCurrentOffset.2)+1
97
 102 00b0 4091 0000 		lds r20,(SumCurrentOffset.2)+2
98
 103 00b4 5091 0000 		lds r21,(SumCurrentOffset.2)+3
99
 104 00b8 BB27      		clr r27
100
 105 00ba A52F      		mov r26,r21
101
 106 00bc 942F      		mov r25,r20
102
 107 00be 832F      		mov r24,r19
103
 108 00c0 9093 0000 		sts (CurrentOffset.1)+1,r25
104
 109 00c4 8093 0000 		sts CurrentOffset.1,r24
105
 110 00c8 AA27      		clr r26
106
 111 00ca BB27      		clr r27
107
 112 00cc 281B      		sub r18,r24
108
 113 00ce 390B      		sbc r19,r25
109
 114 00d0 4A0B      		sbc r20,r26
110
 115 00d2 5B0B      		sbc r21,r27
111
 116 00d4 CF01      		movw r24,r30
112
 117 00d6 AA27      		clr r26
113
 118 00d8 BB27      		clr r27
114
 119 00da 280F      		add r18,r24
115
 120 00dc 391F      		adc r19,r25
116
 121 00de 4A1F      		adc r20,r26
117
 122 00e0 5B1F      		adc r21,r27
118
 123 00e2 2093 0000 		sts SumCurrentOffset.2,r18
119
 124 00e6 3093 0000 		sts (SumCurrentOffset.2)+1,r19
120
 125 00ea 4093 0000 		sts (SumCurrentOffset.2)+2,r20
121
 126 00ee 5093 0000 		sts (SumCurrentOffset.2)+3,r21
122
 127 00f2 E5E0      		ldi r30,lo8(5)
123
 128 00f4 F0E0      		ldi r31,hi8(5)
124
 129 00f6 00C0      		rjmp .L11
125
 130               	.L10:
126
 131 00f8 2091 0000 		lds r18,CurrentOffset.1
127
 132 00fc 3091 0000 		lds r19,(CurrentOffset.1)+1
128
 133 0100 2E17      		cp r18,r30
129
 134 0102 3F07      		cpc r19,r31
130
 135 0104 00F4      		brsh .L12
131
 136 0106 E21B      		sub r30,r18
132
 137 0108 F30B      		sbc r31,r19
133
 138 010a 00C0      		rjmp .L13
134
 139               	.L12:
135
 140 010c E0E0      		ldi r30,lo8(0)
136
 141 010e F0E0      		ldi r31,hi8(0)
137
 142               	.L13:
138
 143 0110 892F      		mov r24,r25
139
 144 0112 9927      		clr r25
140
 145 0114 880F      		add r24,r24
141
 146 0116 991F      		adc r25,r25
142
 147 0118 E80F      		add r30,r24
143
 148 011a F91F      		adc r31,r25
144
 149 011c 3596      		adiw r30,5
145
 150               	.L11:
146
 151 011e F093 0000 		sts (Capacity)+1,r31
147
 152 0122 E093 0000 		sts Capacity,r30
148
 153 0126 EF3F      		cpi r30,255
149
 154 0128 F105      		cpc r31,__zero_reg__
150
 155 012a 00F4      		brsh .L14
151
 156 012c 8091 0000 		lds r24,UBat
152
 157 0130 9091 0000 		lds r25,(UBat)+1
153
 158 0134 8E9F      		mul r24,r30
154
 159 0136 9001      		movw r18,r0
155
 160 0138 8F9F      		mul r24,r31
156
 161 013a 300D      		add r19,r0
157
 162 013c 9E9F      		mul r25,r30
158
 163 013e 300D      		add r19,r0
159
 164 0140 1124      		clr r1
160
 165 0142 C901      		movw r24,r18
161
 166 0144 64E6      		ldi r22,lo8(100)
162
 167 0146 70E0      		ldi r23,hi8(100)
163
 168 0148 00C0      		rjmp .L21
164
 169               	.L14:
165
 170 014a CF01      		movw r24,r30
166
 171 014c 9695      		lsr r25
167
 172 014e 8795      		ror r24
168
 173 0150 9695      		lsr r25
169
 174 0152 8795      		ror r24
170
 175 0154 2091 0000 		lds r18,UBat
171
 176 0158 3091 0000 		lds r19,(UBat)+1
172
 177 015c 289F      		mul r18,r24
173
 178 015e A001      		movw r20,r0
174
 179 0160 299F      		mul r18,r25
175
 180 0162 500D      		add r21,r0
176
 181 0164 389F      		mul r19,r24
177
 182 0166 500D      		add r21,r0
178
 183 0168 1124      		clr r1
179
 184 016a CA01      		movw r24,r20
180
 185 016c 69E1      		ldi r22,lo8(25)
181
 186 016e 70E0      		ldi r23,hi8(25)
182
 187               	.L21:
183
 188 0170 0E94 0000 		call __udivmodhi4
184
 189 0174 7093 0000 		sts (Capacity+2)+1,r23
185
 190 0178 6093 0000 		sts Capacity+2,r22
186
 191 017c 2091 0000 		lds r18,SubCounter.0
187
 192 0180 3091 0000 		lds r19,(SubCounter.0)+1
188
 193 0184 2E0F      		add r18,r30
189
 194 0186 3F1F      		adc r19,r31
190
 195 0188 3093 0000 		sts (SubCounter.0)+1,r19
191
 196 018c 2093 0000 		sts SubCounter.0,r18
192
 197 0190 5EE0      		ldi r21,hi8(3601)
193
 198 0192 2131      		cpi r18,lo8(3601)
194
 199 0194 3507      		cpc r19,r21
195
 200 0196 00F4      		brsh .+2
196
 201 0198 00C0      		rjmp .L2
197
 202 019a 8091 0000 		lds r24,Capacity+4
198
 203 019e 9091 0000 		lds r25,(Capacity+4)+1
199
 204 01a2 0196      		adiw r24,1
200
 205 01a4 9093 0000 		sts (Capacity+4)+1,r25
201
 206 01a8 8093 0000 		sts Capacity+4,r24
202
 207 01ac 2051      		subi r18,lo8(-(-3600))
203
 208 01ae 3E40      		sbci r19,hi8(-(-3600))
204
 209 01b0 3093 0000 		sts (SubCounter.0)+1,r19
205
 210 01b4 2093 0000 		sts SubCounter.0,r18
206
 211 01b8 4091 0000 		lds r20,EE_Parameter+41
207
 212 01bc 24E6      		ldi r18,lo8(100)
208
 213 01be 429F      		mul r20,r18
209
 214 01c0 9001      		movw r18,r0
210
 215 01c2 1124      		clr r1
211
 216 01c4 281B      		sub r18,r24
212
 217 01c6 390B      		sbc r19,r25
213
 218 01c8 3093 0000 		sts (Capacity+6)+1,r19
214
 219 01cc 2093 0000 		sts Capacity+6,r18
215
 220 01d0 1216      		cp __zero_reg__,r18
216
 221 01d2 1306      		cpc __zero_reg__,r19
217
 222 01d4 04F0      		brlt .L17
218
 223 01d6 C901      		movw r24,r18
219
 224 01d8 6AE0      		ldi r22,lo8(10)
220
 225 01da 70E0      		ldi r23,hi8(10)
221
 226 01dc 0E94 0000 		call __divmodhi4
222
 227 01e0 892B      		or r24,r25
223
 228 01e2 01F4      		brne .L17
224
 229 01e4 4423      		tst r20
225
 230 01e6 01F0      		breq .L17
226
 231 01e8 88EE      		ldi r24,lo8(1000)
227
 232 01ea 93E0      		ldi r25,hi8(1000)
228
 233 01ec 9093 0000 		sts (beeptime)+1,r25
229
 234 01f0 8093 0000 		sts beeptime,r24
230
 235               	.L17:
231
 236 01f4 8091 0000 		lds r24,Capacity+6
232
 237 01f8 9091 0000 		lds r25,(Capacity+6)+1
233
 238 01fc C1E0      		ldi r28,hi8(501)
234
 239 01fe 853F      		cpi r24,lo8(501)
235
 240 0200 9C07      		cpc r25,r28
236
 241 0202 04F4      		brge .L2
237
 242 0204 64E6      		ldi r22,lo8(100)
238
 243 0206 70E0      		ldi r23,hi8(100)
239
 244 0208 0E94 0000 		call __divmodhi4
240
 245 020c 892B      		or r24,r25
241
 246 020e 01F4      		brne .L2
242
 247 0210 4423      		tst r20
243
 248 0212 01F0      		breq .L2
244
 249 0214 80E1      		ldi r24,lo8(10000)
245
 250 0216 97E2      		ldi r25,hi8(10000)
246
 251 0218 9093 0000 		sts (beeptime)+1,r25
247
 252 021c 8093 0000 		sts beeptime,r24
248
 253               	.L2:
249
 254               	/* epilogue: frame size=0 */
250
 255 0220 DF91      		pop r29
251
 256 0222 CF91      		pop r28
252
 257 0224 0895      		ret
253
 258               	/* epilogue end (size=3) */
254
 259               	/* function Capacity_Update size 242 (237) */
255
 261               		.comm Capacity,9,1
256
 262               		.comm Motorsmax,8,1
257
 263               		.comm MotorsTmax,2,1
258
 264               	/* File "capacity.c": code  275 = 0x0113 ( 269), prologues   2, epilogues   4 */
259
DEFINED SYMBOLS
260
                            *ABS*:00000000 capacity.c
261
C:\Users\Thomas\AppData\Local\Temp/ccrLU3oU.s:3      *ABS*:0000003f __SREG__
262
C:\Users\Thomas\AppData\Local\Temp/ccrLU3oU.s:4      *ABS*:0000003e __SP_H__
263
C:\Users\Thomas\AppData\Local\Temp/ccrLU3oU.s:5      *ABS*:0000003d __SP_L__
264
C:\Users\Thomas\AppData\Local\Temp/ccrLU3oU.s:6      *ABS*:00000000 __tmp_reg__
265
C:\Users\Thomas\AppData\Local\Temp/ccrLU3oU.s:7      *ABS*:00000001 __zero_reg__
266
C:\Users\Thomas\AppData\Local\Temp/ccrLU3oU.s:15     .bss:00000000 update_timer
267
C:\Users\Thomas\AppData\Local\Temp/ccrLU3oU.s:20     .text:00000000 Capacity_Init
268
                            *COM*:00000009 Capacity
269
                             .bss:00000002 SubCounter.0
270
C:\Users\Thomas\AppData\Local\Temp/ccrLU3oU.s:47     .bss:00000004 CurrentOffset.1
271
C:\Users\Thomas\AppData\Local\Temp/ccrLU3oU.s:48     .bss:00000006 SumCurrentOffset.2
272
C:\Users\Thomas\AppData\Local\Temp/ccrLU3oU.s:52     .text:00000042 Capacity_Update
273
                            *COM*:00000008 Motorsmax
274
                            *COM*:00000002 MotorsTmax
275
 
276
UNDEFINED SYMBOLS
277
__do_copy_data
278
__do_clear_bss
279
EE_Parameter
280
SetDelay
281
CheckDelay
282
Motor
283
UBat
284
__udivmodhi4
285
__divmodhi4
286
beeptime