0,0 → 1,229 |
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+6,__zero_reg__ |
30 001c 8AE0 ldi r24,lo8(10) |
31 001e 90E0 ldi r25,hi8(10) |
32 0020 0E94 0000 call SetDelay |
33 0024 9093 0000 sts (update_timer)+1,r25 |
34 0028 8093 0000 sts update_timer,r24 |
35 /* epilogue: frame size=0 */ |
36 002c 0895 ret |
37 /* epilogue end (size=1) */ |
38 /* function Capacity_Init size 23 (22) */ |
40 .lcomm SubCounter.0,2 |
41 .lcomm CurrentOffset.1,2 |
42 .lcomm SumCurrentOffset.2,4 |
43 .global Capacity_Update |
45 Capacity_Update: |
46 /* prologue: frame size=0 */ |
47 002e CF93 push r28 |
48 0030 DF93 push r29 |
49 /* prologue end (size=2) */ |
50 0032 8091 0000 lds r24,update_timer |
51 0036 9091 0000 lds r25,(update_timer)+1 |
52 003a 0E94 0000 call CheckDelay |
53 003e 8823 tst r24 |
54 0040 01F4 brne .+2 |
55 0042 00C0 rjmp .L2 |
56 0044 8091 0000 lds r24,update_timer |
57 0048 9091 0000 lds r25,(update_timer)+1 |
58 004c 0A96 adiw r24,10 |
59 004e 9093 0000 sts (update_timer)+1,r25 |
60 0052 8093 0000 sts update_timer,r24 |
61 0056 E0E0 ldi r30,lo8(0) |
62 0058 F0E0 ldi r31,hi8(0) |
63 005a 9F01 movw r18,r30 |
64 005c 90E0 ldi r25,lo8(0) |
65 005e 5FEF ldi r21,lo8(-1) |
66 0060 A0E0 ldi r26,lo8(Motor) |
67 0062 B0E0 ldi r27,hi8(Motor) |
68 0064 4BE0 ldi r20,lo8(11) |
69 .L9: |
70 0066 ED01 movw r28,r26 |
71 0068 8B81 ldd r24,Y+3 |
72 006a 87FF sbrs r24,7 |
73 006c 00C0 rjmp .L6 |
74 006e 9F5F subi r25,lo8(-(1)) |
75 0070 8D81 ldd r24,Y+5 |
76 0072 E80F add r30,r24 |
77 0074 F11D adc r31,__zero_reg__ |
78 0076 8981 ldd r24,Y+1 |
79 0078 280F add r18,r24 |
80 007a 311D adc r19,__zero_reg__ |
81 007c 8E81 ldd r24,Y+6 |
82 007e 8517 cp r24,r21 |
83 0080 00F4 brsh .L6 |
84 0082 582F mov r21,r24 |
85 .L6: |
86 0084 4150 subi r20,lo8(-(-1)) |
87 0086 1896 adiw r26,8 |
88 0088 47FF sbrs r20,7 |
89 008a 00C0 rjmp .L9 |
90 008c 5093 0000 sts Capacity+6,r21 |
91 0090 232B or r18,r19 |
92 0092 01F4 brne .L10 |
93 0094 2091 0000 lds r18,SumCurrentOffset.2 |
94 0098 3091 0000 lds r19,(SumCurrentOffset.2)+1 |
95 009c 4091 0000 lds r20,(SumCurrentOffset.2)+2 |
96 00a0 5091 0000 lds r21,(SumCurrentOffset.2)+3 |
97 00a4 BB27 clr r27 |
98 00a6 A52F mov r26,r21 |
99 00a8 942F mov r25,r20 |
100 00aa 832F mov r24,r19 |
101 00ac 9093 0000 sts (CurrentOffset.1)+1,r25 |
102 00b0 8093 0000 sts CurrentOffset.1,r24 |
103 00b4 AA27 clr r26 |
104 00b6 BB27 clr r27 |
105 00b8 281B sub r18,r24 |
106 00ba 390B sbc r19,r25 |
107 00bc 4A0B sbc r20,r26 |
108 00be 5B0B sbc r21,r27 |
109 00c0 CF01 movw r24,r30 |
110 00c2 AA27 clr r26 |
111 00c4 BB27 clr r27 |
112 00c6 280F add r18,r24 |
113 00c8 391F adc r19,r25 |
114 00ca 4A1F adc r20,r26 |
115 00cc 5B1F adc r21,r27 |
116 00ce 2093 0000 sts SumCurrentOffset.2,r18 |
117 00d2 3093 0000 sts (SumCurrentOffset.2)+1,r19 |
118 00d6 4093 0000 sts (SumCurrentOffset.2)+2,r20 |
119 00da 5093 0000 sts (SumCurrentOffset.2)+3,r21 |
120 00de E5E0 ldi r30,lo8(5) |
121 00e0 F0E0 ldi r31,hi8(5) |
122 00e2 00C0 rjmp .L11 |
123 .L10: |
124 00e4 2091 0000 lds r18,CurrentOffset.1 |
125 00e8 3091 0000 lds r19,(CurrentOffset.1)+1 |
126 00ec 2E17 cp r18,r30 |
127 00ee 3F07 cpc r19,r31 |
128 00f0 00F4 brsh .L12 |
129 00f2 E21B sub r30,r18 |
130 00f4 F30B sbc r31,r19 |
131 00f6 00C0 rjmp .L13 |
132 .L12: |
133 00f8 E0E0 ldi r30,lo8(0) |
134 00fa F0E0 ldi r31,hi8(0) |
135 .L13: |
136 00fc 892F mov r24,r25 |
137 00fe 9927 clr r25 |
138 0100 880F add r24,r24 |
139 0102 991F adc r25,r25 |
140 0104 E80F add r30,r24 |
141 0106 F91F adc r31,r25 |
142 0108 3596 adiw r30,5 |
143 .L11: |
144 010a F093 0000 sts (Capacity)+1,r31 |
145 010e E093 0000 sts Capacity,r30 |
146 0112 EF3F cpi r30,255 |
147 0114 F105 cpc r31,__zero_reg__ |
148 0116 00F4 brsh .L14 |
149 0118 8091 0000 lds r24,UBat |
150 011c 9091 0000 lds r25,(UBat)+1 |
151 0120 8E9F mul r24,r30 |
152 0122 9001 movw r18,r0 |
153 0124 8F9F mul r24,r31 |
154 0126 300D add r19,r0 |
155 0128 9E9F mul r25,r30 |
156 012a 300D add r19,r0 |
157 012c 1124 clr r1 |
158 012e C901 movw r24,r18 |
159 0130 64E6 ldi r22,lo8(100) |
160 0132 70E0 ldi r23,hi8(100) |
161 0134 00C0 rjmp .L19 |
162 .L14: |
163 0136 CF01 movw r24,r30 |
164 0138 9695 lsr r25 |
165 013a 8795 ror r24 |
166 013c 9695 lsr r25 |
167 013e 8795 ror r24 |
168 0140 2091 0000 lds r18,UBat |
169 0144 3091 0000 lds r19,(UBat)+1 |
170 0148 289F mul r18,r24 |
171 014a A001 movw r20,r0 |
172 014c 299F mul r18,r25 |
173 014e 500D add r21,r0 |
174 0150 389F mul r19,r24 |
175 0152 500D add r21,r0 |
176 0154 1124 clr r1 |
177 0156 CA01 movw r24,r20 |
178 0158 69E1 ldi r22,lo8(25) |
179 015a 70E0 ldi r23,hi8(25) |
180 .L19: |
181 015c 0E94 0000 call __udivmodhi4 |
182 0160 7093 0000 sts (Capacity+2)+1,r23 |
183 0164 6093 0000 sts Capacity+2,r22 |
184 0168 2091 0000 lds r18,SubCounter.0 |
185 016c 3091 0000 lds r19,(SubCounter.0)+1 |
186 0170 2E0F add r18,r30 |
187 0172 3F1F adc r19,r31 |
188 0174 3093 0000 sts (SubCounter.0)+1,r19 |
189 0178 2093 0000 sts SubCounter.0,r18 |
190 017c 5EE0 ldi r21,hi8(3601) |
191 017e 2131 cpi r18,lo8(3601) |
192 0180 3507 cpc r19,r21 |
193 0182 00F0 brlo .L2 |
194 0184 8091 0000 lds r24,Capacity+4 |
195 0188 9091 0000 lds r25,(Capacity+4)+1 |
196 018c 0196 adiw r24,1 |
197 018e 9093 0000 sts (Capacity+4)+1,r25 |
198 0192 8093 0000 sts Capacity+4,r24 |
199 0196 2051 subi r18,lo8(-(-3600)) |
200 0198 3E40 sbci r19,hi8(-(-3600)) |
201 019a 3093 0000 sts (SubCounter.0)+1,r19 |
202 019e 2093 0000 sts SubCounter.0,r18 |
203 .L2: |
204 /* epilogue: frame size=0 */ |
205 01a2 DF91 pop r29 |
206 01a4 CF91 pop r28 |
207 01a6 0895 ret |
208 /* epilogue end (size=3) */ |
209 /* function Capacity_Update size 189 (184) */ |
211 .comm Capacity,7,1 |
212 /* File "capacity.c": code 212 = 0x00d4 ( 206), prologues 2, epilogues 4 */ |
DEFINED SYMBOLS |
*ABS*:00000000 capacity.c |
C:\Temp/ccTVr0ER.s:3 *ABS*:0000003f __SREG__ |
C:\Temp/ccTVr0ER.s:4 *ABS*:0000003e __SP_H__ |
C:\Temp/ccTVr0ER.s:5 *ABS*:0000003d __SP_L__ |
C:\Temp/ccTVr0ER.s:6 *ABS*:00000000 __tmp_reg__ |
C:\Temp/ccTVr0ER.s:7 *ABS*:00000001 __zero_reg__ |
C:\Temp/ccTVr0ER.s:15 .bss:00000000 update_timer |
C:\Temp/ccTVr0ER.s:20 .text:00000000 Capacity_Init |
*COM*:00000007 Capacity |
.bss:00000002 SubCounter.0 |
C:\Temp/ccTVr0ER.s:40 .bss:00000004 CurrentOffset.1 |
C:\Temp/ccTVr0ER.s:41 .bss:00000006 SumCurrentOffset.2 |
C:\Temp/ccTVr0ER.s:45 .text:0000002e Capacity_Update |
|
UNDEFINED SYMBOLS |
__do_copy_data |
__do_clear_bss |
SetDelay |
CheckDelay |
Motor |
UBat |
__udivmodhi4 |