Go to most recent revision | Blame | Last modification | View Log | RSS feed
1 .file "capacity.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .text
10 .global Capacity_Update
12 Capacity_Update:
13 /* prologue: frame size=0 */
14 /* prologue end (size=0) */
15 0000 8091 0000 lds r24,update_timer
16 0004 9091 0000 lds r25,(update_timer)+1
17 0008 0E94 0000 call CheckDelay
18 000c 8823 tst r24
19 000e 01F4 brne .+2
20 0010 00C0 rjmp .L19
21 0012 8091 0000 lds r24,update_timer
22 0016 9091 0000 lds r25,(update_timer)+1
23 001a 0A96 adiw r24,10
24 001c 9093 0000 sts (update_timer)+1,r25
25 0020 8093 0000 sts update_timer,r24
26 0024 E0E0 ldi r30,lo8(Motor)
27 0026 F0E0 ldi r31,hi8(Motor)
28 0028 60E0 ldi r22,lo8(0)
29 002a 70E0 ldi r23,hi8(0)
30 002c 40E0 ldi r20,lo8(0)
31 002e 50E0 ldi r21,hi8(0)
32 0030 90E0 ldi r25,lo8(0)
33 0032 AFEF ldi r26,lo8(-1)
34 .L4:
35 0034 8381 ldd r24,Z+3
36 0036 87FF sbrs r24,7
37 0038 00C0 rjmp .L5
38 003a 9F5F subi r25,lo8(-(1))
39 003c 8581 ldd r24,Z+5
40 003e 680F add r22,r24
41 0040 711D adc r23,__zero_reg__
42 0042 8181 ldd r24,Z+1
43 0044 480F add r20,r24
44 0046 511D adc r21,__zero_reg__
45 0048 8681 ldd r24,Z+6
46 004a 8A17 cp r24,r26
47 004c 00F4 brsh .L5
48 004e A82F mov r26,r24
49 .L5:
50 0050 3896 adiw r30,8
51 0052 20E0 ldi r18,hi8(Motor+96)
52 0054 E030 cpi r30,lo8(Motor+96)
53 0056 F207 cpc r31,r18
54 0058 01F4 brne .L4
55 005a A093 0000 sts Capacity+6,r26
56 005e 452B or r20,r21
57 0060 01F4 brne .L9
58 0062 8091 0000 lds r24,SumCurrentOffset.2516
59 0066 9091 0000 lds r25,(SumCurrentOffset.2516)+1
60 006a A091 0000 lds r26,(SumCurrentOffset.2516)+2
61 006e B091 0000 lds r27,(SumCurrentOffset.2516)+3
62 0072 292F mov r18,r25
63 0074 3A2F mov r19,r26
64 0076 4B2F mov r20,r27
65 0078 5527 clr r21
66 007a 3093 0000 sts (CurrentOffset.2515)+1,r19
67 007e 2093 0000 sts CurrentOffset.2515,r18
68 0082 40E0 ldi r20,lo8(0)
69 0084 50E0 ldi r21,hi8(0)
70 0086 821B sub r24,r18
71 0088 930B sbc r25,r19
72 008a A40B sbc r26,r20
73 008c B50B sbc r27,r21
74 008e 9B01 movw r18,r22
75 0090 40E0 ldi r20,lo8(0)
76 0092 50E0 ldi r21,hi8(0)
77 0094 820F add r24,r18
78 0096 931F adc r25,r19
79 0098 A41F adc r26,r20
80 009a B51F adc r27,r21
81 009c 8093 0000 sts SumCurrentOffset.2516,r24
82 00a0 9093 0000 sts (SumCurrentOffset.2516)+1,r25
83 00a4 A093 0000 sts (SumCurrentOffset.2516)+2,r26
84 00a8 B093 0000 sts (SumCurrentOffset.2516)+3,r27
85 00ac E5E0 ldi r30,lo8(5)
86 00ae F0E0 ldi r31,hi8(5)
87 00b0 00C0 rjmp .L11
88 .L9:
89 00b2 2091 0000 lds r18,CurrentOffset.2515
90 00b6 3091 0000 lds r19,(CurrentOffset.2515)+1
91 00ba 2617 cp r18,r22
92 00bc 3707 cpc r19,r23
93 00be 00F0 brlo .L12
94 00c0 20E0 ldi r18,lo8(0)
95 00c2 30E0 ldi r19,hi8(0)
96 00c4 00C0 rjmp .L14
97 .L12:
98 00c6 621B sub r22,r18
99 00c8 730B sbc r23,r19
100 00ca 9B01 movw r18,r22
101 .L14:
102 00cc E92F mov r30,r25
103 00ce F0E0 ldi r31,lo8(0)
104 00d0 EE0F lsl r30
105 00d2 FF1F rol r31
106 00d4 3596 adiw r30,5
107 00d6 E20F add r30,r18
108 00d8 F31F adc r31,r19
109 .L11:
110 00da F093 0000 sts (Capacity)+1,r31
111 00de E093 0000 sts Capacity,r30
112 00e2 EF3F cpi r30,255
113 00e4 F105 cpc r31,__zero_reg__
114 00e6 00F4 brsh .L15
115 00e8 8091 0000 lds r24,UBat
116 00ec 9091 0000 lds r25,(UBat)+1
117 00f0 AC01 movw r20,r24
118 00f2 E49F mul r30,r20
119 00f4 C001 movw r24,r0
120 00f6 E59F mul r30,r21
121 00f8 900D add r25,r0
122 00fa F49F mul r31,r20
123 00fc 900D add r25,r0
124 00fe 1124 clr r1
125 0100 64E6 ldi r22,lo8(100)
126 0102 70E0 ldi r23,hi8(100)
127 0104 00C0 rjmp .L22
128 .L15:
129 0106 8091 0000 lds r24,UBat
130 010a 9091 0000 lds r25,(UBat)+1
131 010e 9F01 movw r18,r30
132 0110 3695 lsr r19
133 0112 2795 ror r18
134 0114 3695 lsr r19
135 0116 2795 ror r18
136 0118 AC01 movw r20,r24
137 011a 249F mul r18,r20
138 011c C001 movw r24,r0
139 011e 259F mul r18,r21
140 0120 900D add r25,r0
141 0122 349F mul r19,r20
142 0124 900D add r25,r0
143 0126 1124 clr r1
144 0128 69E1 ldi r22,lo8(25)
145 012a 70E0 ldi r23,hi8(25)
146 .L22:
147 012c 0E94 0000 call __udivmodhi4
148 0130 7093 0000 sts (Capacity+2)+1,r23
149 0134 6093 0000 sts Capacity+2,r22
150 0138 2091 0000 lds r18,SubCounter.2514
151 013c 3091 0000 lds r19,(SubCounter.2514)+1
152 0140 2E0F add r18,r30
153 0142 3F1F adc r19,r31
154 0144 3093 0000 sts (SubCounter.2514)+1,r19
155 0148 2093 0000 sts SubCounter.2514,r18
156 014c 5EE0 ldi r21,hi8(3601)
157 014e 2131 cpi r18,lo8(3601)
158 0150 3507 cpc r19,r21
159 0152 00F0 brlo .L19
160 0154 8091 0000 lds r24,Capacity+4
161 0158 9091 0000 lds r25,(Capacity+4)+1
162 015c 0196 adiw r24,1
163 015e 9093 0000 sts (Capacity+4)+1,r25
164 0162 8093 0000 sts Capacity+4,r24
165 0166 2051 subi r18,lo8(-(-3600))
166 0168 3E40 sbci r19,hi8(-(-3600))
167 016a 3093 0000 sts (SubCounter.2514)+1,r19
168 016e 2093 0000 sts SubCounter.2514,r18
169 .L19:
170 0172 0895 ret
171 /* epilogue: frame size=0 */
172 /* epilogue: noreturn */
173 /* epilogue end (size=0) */
174 /* function Capacity_Update size 186 (186) */
176 .global Capacity_Init
178 Capacity_Init:
179 /* prologue: frame size=0 */
180 /* prologue end (size=0) */
181 0174 1092 0000 sts (Capacity)+1,__zero_reg__
182 0178 1092 0000 sts Capacity,__zero_reg__
183 017c 1092 0000 sts (Capacity+4)+1,__zero_reg__
184 0180 1092 0000 sts Capacity+4,__zero_reg__
185 0184 1092 0000 sts (Capacity+2)+1,__zero_reg__
186 0188 1092 0000 sts Capacity+2,__zero_reg__
187 018c 1092 0000 sts Capacity+6,__zero_reg__
188 0190 8AE0 ldi r24,lo8(10)
189 0192 90E0 ldi r25,hi8(10)
190 0194 0E94 0000 call SetDelay
191 0198 9093 0000 sts (update_timer)+1,r25
192 019c 8093 0000 sts update_timer,r24
193 /* epilogue: frame size=0 */
194 01a0 0895 ret
195 /* epilogue end (size=1) */
196 /* function Capacity_Init size 23 (22) */
198 .global update_timer
199 .global update_timer
200 .section .bss
203 update_timer:
204 0000 0000 .skip 2,0
205 .lcomm SumCurrentOffset.2516,4
206 .lcomm CurrentOffset.2515,2
207 .lcomm SubCounter.2514,2
208 .comm Capacity,7,1
209 /* File "capacity.c": code 209 = 0x00d1 ( 208), prologues 0, epilogues 1 */
DEFINED SYMBOLS
*ABS*:00000000 capacity.c
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgWDiSh.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgWDiSh.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgWDiSh.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgWDiSh.s:5 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgWDiSh.s:6 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgWDiSh.s:12 .text:00000000 Capacity_Update
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgWDiSh.s:203 .bss:00000000 update_timer
*COM*:00000007 Capacity
.bss:00000002 SumCurrentOffset.2516
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgWDiSh.s:205 .bss:00000006 CurrentOffset.2515
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgWDiSh.s:206 .bss:00000008 SubCounter.2514
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgWDiSh.s:178 .text:00000174 Capacity_Init
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
CheckDelay
Motor
UBat
__udivmodhi4
SetDelay