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