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