Blame | Last modification | View Log | RSS feed
1 .file "BLMC.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
11 .text
12 .Ltext0:
100 .global __vector_4
102 __vector_4:
103 .stabd 46,0,0
1:src/BLMC.c **** /*#######################################################################################
2:src/BLMC.c **** Flight Control
3:src/BLMC.c **** #######################################################################################*/
4:src/BLMC.c **** // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5:src/BLMC.c **** // + Regler für Brushless-Motoren
6:src/BLMC.c **** // + ATMEGA8 mit 8MHz
7:src/BLMC.c **** // + Nur für den privaten Gebrauch
8:src/BLMC.c **** // + Copyright (c) 12.2007 Holger Buss
9:src/BLMC.c **** // + www.MikroKopter.com
10:src/BLMC.c **** // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
11:src/BLMC.c **** // + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation)
12:src/BLMC.c **** // + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulä
13:src/BLMC.c **** // + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikro
14:src/BLMC.c **** // + bzgl. der Nutzungsbedingungen aufzunehmen.
15:src/BLMC.c **** // + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platine
16:src/BLMC.c **** // + Verkauf von Luftbildaufnahmen, usw.
17:src/BLMC.c **** // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
18:src/BLMC.c **** // + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht,
19:src/BLMC.c **** // + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright
20:src/BLMC.c **** // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
21:src/BLMC.c **** // + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts
22:src/BLMC.c **** // + auf anderen Webseiten oder sonstigen Medien veröffentlicht werden, muss unsere Webseite "http:
23:src/BLMC.c **** // + eindeutig als Ursprung verlinkt werden
24:src/BLMC.c **** // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
25:src/BLMC.c **** // + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion
26:src/BLMC.c **** // + Benutzung auf eigene Gefahr
27:src/BLMC.c **** // + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden
28:src/BLMC.c **** // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
29:src/BLMC.c **** // + Die Portierung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www
30:src/BLMC.c **** // + mit unserer Zustimmung zulässig
31:src/BLMC.c **** // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
32:src/BLMC.c **** // + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen
33:src/BLMC.c **** // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
34:src/BLMC.c **** // + Redistributions of source code (with or without modifications) must retain the above copyright
35:src/BLMC.c **** // + this list of conditions and the following disclaimer.
36:src/BLMC.c **** // + * Neither the name of the copyright holders nor the names of contributors may be used to end
37:src/BLMC.c **** // + from this software without specific prior written permission.
38:src/BLMC.c **** // + * The use of this project (hardware, software, binary files, sources and documentation) is o
39:src/BLMC.c **** // + for non-commercial use (directly or indirectly)
40:src/BLMC.c **** // + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is
41:src/BLMC.c **** // + with our written permission
42:src/BLMC.c **** // + * If sources or documentations are redistributet on other webpages, out webpage (http://www.
43:src/BLMC.c **** // + clearly linked as origin
44:src/BLMC.c **** // + * porting to systems other than hardware from www.mikrokopter.de is not allowed
45:src/BLMC.c **** // + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
46:src/BLMC.c **** // + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
47:src/BLMC.c **** // + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
48:src/BLMC.c **** // + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
49:src/BLMC.c **** // + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
50:src/BLMC.c **** // + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
51:src/BLMC.c **** // + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
52:src/BLMC.c **** // + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN// + CONTRACT, STRICT
53:src/BLMC.c **** // + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
54:src/BLMC.c **** // + POSSIBILITY OF SUCH DAMAGE.
55:src/BLMC.c **** // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
56:src/BLMC.c **** #include "main.h"
57:src/BLMC.c ****
58:src/BLMC.c **** volatile unsigned char Phase = 0,ShadowTCCR1A = 0;
59:src/BLMC.c **** volatile unsigned char CompFreigabeTimer = 100;
60:src/BLMC.c **** volatile unsigned char CompInterruptFreigabe = 0;
61:src/BLMC.c ****
62:src/BLMC.c ****
63:src/BLMC.c **** //############################################################################
64:src/BLMC.c **** //
65:src/BLMC.c **** SIGNAL(SIG_OVERFLOW2)
66:src/BLMC.c **** //############################################################################
67:src/BLMC.c **** {
105 .LM0:
106 .LFBB1:
107 /* prologue: frame size=0 */
108 0000 1F92 push __zero_reg__
109 0002 0F92 push __tmp_reg__
110 0004 0FB6 in __tmp_reg__,__SREG__
111 0006 0F92 push __tmp_reg__
112 0008 1124 clr __zero_reg__
113 /* prologue end (size=5) */
114 /* epilogue: frame size=0 */
115 000a 0F90 pop __tmp_reg__
116 000c 0FBE out __SREG__,__tmp_reg__
117 000e 0F90 pop __tmp_reg__
118 0010 1F90 pop __zero_reg__
119 0012 1895 reti
120 /* epilogue end (size=5) */
121 /* function __vector_4 size 10 (0) */
123 .Lscope1:
125 .stabd 78,0,0
127 .global Manuell
129 Manuell:
130 .stabd 46,0,0
68:src/BLMC.c **** }
69:src/BLMC.c ****
70:src/BLMC.c **** //############################################################################
71:src/BLMC.c **** // + Interruptroutine
72:src/BLMC.c **** // + Wird durch den Analogkomperator ausgelöst
73:src/BLMC.c **** // + Dadurch wird das Kommutieren erzeugt
74:src/BLMC.c **** SIGNAL(SIG_COMPARATOR)
75:src/BLMC.c **** //############################################################################
76:src/BLMC.c **** {
77:src/BLMC.c **** unsigned char sense = 0;
78:src/BLMC.c **** do
79:src/BLMC.c **** {
80:src/BLMC.c **** if(SENSE_H) sense = 1; else sense = 0;
81:src/BLMC.c **** switch(Phase)
82:src/BLMC.c **** {
83:src/BLMC.c **** case 0:
84:src/BLMC.c **** STEUER_A_H;
85:src/BLMC.c **** if(sense)
86:src/BLMC.c **** {
87:src/BLMC.c **** STEUER_C_L;
88:src/BLMC.c **** if(ZeitZumAdWandeln) AdConvert();
89:src/BLMC.c **** SENSE_FALLING_INT;
90:src/BLMC.c **** SENSE_B;
91:src/BLMC.c **** Phase++;
92:src/BLMC.c **** CntKommutierungen++;
93:src/BLMC.c **** }
94:src/BLMC.c **** else
95:src/BLMC.c **** {
96:src/BLMC.c **** STEUER_B_L;
97:src/BLMC.c **** }
98:src/BLMC.c **** break;
99:src/BLMC.c **** case 1:
100:src/BLMC.c **** STEUER_C_L;
101:src/BLMC.c **** if(!sense)
102:src/BLMC.c **** {
103:src/BLMC.c **** STEUER_B_H;
104:src/BLMC.c **** if(ZeitZumAdWandeln) AdConvert();
105:src/BLMC.c **** SENSE_A;
106:src/BLMC.c **** SENSE_RISING_INT;
107:src/BLMC.c **** Phase++;
108:src/BLMC.c **** CntKommutierungen++;
109:src/BLMC.c **** }
110:src/BLMC.c **** else
111:src/BLMC.c **** {
112:src/BLMC.c **** STEUER_A_H;
113:src/BLMC.c **** }
114:src/BLMC.c ****
115:src/BLMC.c **** break;
116:src/BLMC.c **** case 2:
117:src/BLMC.c **** STEUER_B_H;
118:src/BLMC.c **** if(sense)
119:src/BLMC.c **** {
120:src/BLMC.c **** STEUER_A_L;
121:src/BLMC.c **** if(ZeitZumAdWandeln) AdConvert();
122:src/BLMC.c **** SENSE_C;
123:src/BLMC.c **** SENSE_FALLING_INT;
124:src/BLMC.c **** Phase++;
125:src/BLMC.c **** CntKommutierungen++;
126:src/BLMC.c **** }
127:src/BLMC.c **** else
128:src/BLMC.c **** {
129:src/BLMC.c **** STEUER_C_L;
130:src/BLMC.c **** }
131:src/BLMC.c ****
132:src/BLMC.c **** break;
133:src/BLMC.c **** case 3:
134:src/BLMC.c **** STEUER_A_L;
135:src/BLMC.c **** if(!sense)
136:src/BLMC.c **** {
137:src/BLMC.c **** STEUER_C_H;
138:src/BLMC.c **** if(ZeitZumAdWandeln) AdConvert();
139:src/BLMC.c **** SENSE_B;
140:src/BLMC.c **** SENSE_RISING_INT;
141:src/BLMC.c **** Phase++;
142:src/BLMC.c **** CntKommutierungen++;
143:src/BLMC.c **** }
144:src/BLMC.c **** else
145:src/BLMC.c **** {
146:src/BLMC.c **** STEUER_B_H;
147:src/BLMC.c **** }
148:src/BLMC.c ****
149:src/BLMC.c ****
150:src/BLMC.c **** break;
151:src/BLMC.c **** case 4:
152:src/BLMC.c **** STEUER_C_H;
153:src/BLMC.c **** if(sense)
154:src/BLMC.c **** {
155:src/BLMC.c **** STEUER_B_L;
156:src/BLMC.c **** if(ZeitZumAdWandeln) AdConvert();
157:src/BLMC.c **** SENSE_A;
158:src/BLMC.c **** SENSE_FALLING_INT;
159:src/BLMC.c **** Phase++;
160:src/BLMC.c **** CntKommutierungen++;
161:src/BLMC.c **** }
162:src/BLMC.c **** else
163:src/BLMC.c **** {
164:src/BLMC.c **** STEUER_A_L;
165:src/BLMC.c **** }
166:src/BLMC.c ****
167:src/BLMC.c **** break;
168:src/BLMC.c **** case 5:
169:src/BLMC.c **** STEUER_B_L;
170:src/BLMC.c **** if(!sense)
171:src/BLMC.c **** {
172:src/BLMC.c **** STEUER_A_H;
173:src/BLMC.c **** if(ZeitZumAdWandeln) AdConvert();
174:src/BLMC.c **** SENSE_C;
175:src/BLMC.c **** SENSE_RISING_INT;
176:src/BLMC.c **** Phase = 0;
177:src/BLMC.c **** CntKommutierungen++;
178:src/BLMC.c **** }
179:src/BLMC.c **** else
180:src/BLMC.c **** {
181:src/BLMC.c **** STEUER_C_H;
182:src/BLMC.c **** }
183:src/BLMC.c **** break;
184:src/BLMC.c **** }
185:src/BLMC.c **** }
186:src/BLMC.c **** while((SENSE_L && sense) || (SENSE_H && !sense));
187:src/BLMC.c **** ZeitZumAdWandeln = 0;
188:src/BLMC.c **** }
189:src/BLMC.c ****
190:src/BLMC.c **** //############################################################################
191:src/BLMC.c **** //
192:src/BLMC.c **** void Manuell(void)
193:src/BLMC.c **** //############################################################################
194:src/BLMC.c **** {
132 .LM1:
133 .LFBB2:
134 /* prologue: frame size=0 */
135 /* prologue end (size=0) */
195:src/BLMC.c **** switch(Phase)
137 .LM2:
138 0014 9091 0000 lds r25,Phase
139 0018 9230 cpi r25,lo8(2)
140 001a 01F0 breq .L7
142 .LM3:
143 001c 9330 cpi r25,lo8(3)
144 001e 00F4 brsh .L11
145 0020 9923 tst r25
146 0022 01F0 breq .L5
147 0024 9130 cpi r25,lo8(1)
148 0026 01F0 breq .+2
149 0028 00C0 rjmp .L12
150 002a 00C0 rjmp .L6
151 .L11:
152 002c 9430 cpi r25,lo8(4)
153 002e 01F0 breq .L9
154 0030 9430 cpi r25,lo8(4)
155 0032 00F0 brlo .L8
156 0034 9530 cpi r25,lo8(5)
157 0036 01F0 breq .+2
158 0038 00C0 rjmp .L12
159 003a 00C0 rjmp .L10
160 .L5:
196:src/BLMC.c **** {
197:src/BLMC.c **** case 0:
198:src/BLMC.c **** STEUER_A_H;
162 .LM4:
163 003c 81EA ldi r24,lo8(-95)
164 003e 8FBD out 79-0x20,r24
165 0040 81E6 ldi r24,lo8(97)
166 0042 85BD out 69-0x20,r24
167 0044 88E0 ldi r24,lo8(8)
168 0046 87BB out 55-0x20,r24
199:src/BLMC.c **** STEUER_B_L;
170 .LM5:
171 0048 82B3 in r24,50-0x20
172 004a 877D andi r24,lo8(-41)
173 004c 82BB out 50-0x20,r24
174 004e 949A sbi 50-0x20,4
200:src/BLMC.c **** SENSE_C;
176 .LM6:
177 0050 82E0 ldi r24,lo8(2)
178 0052 00C0 rjmp .L15
179 .L6:
201:src/BLMC.c **** SENSE_RISING_INT;
202:src/BLMC.c **** break;
203:src/BLMC.c **** case 1:
204:src/BLMC.c **** STEUER_A_H;
181 .LM7:
182 0054 81EA ldi r24,lo8(-95)
183 0056 8FBD out 79-0x20,r24
184 0058 81E6 ldi r24,lo8(97)
185 005a 85BD out 69-0x20,r24
186 005c 88E0 ldi r24,lo8(8)
187 005e 87BB out 55-0x20,r24
205:src/BLMC.c **** STEUER_C_L;
189 .LM8:
190 0060 82B3 in r24,50-0x20
191 0062 877E andi r24,lo8(-25)
192 0064 82BB out 50-0x20,r24
193 0066 959A sbi 50-0x20,5
206:src/BLMC.c **** SENSE_B;
195 .LM9:
196 0068 97B9 out 39-0x20,r25
197 006a 00C0 rjmp .L14
198 .L7:
207:src/BLMC.c **** SENSE_FALLING_INT;
208:src/BLMC.c **** break;
209:src/BLMC.c **** case 2:
210:src/BLMC.c **** STEUER_B_H;
200 .LM10:
201 006c 81EA ldi r24,lo8(-95)
202 006e 8FBD out 79-0x20,r24
203 0070 81E6 ldi r24,lo8(97)
204 0072 85BD out 69-0x20,r24
205 0074 84E0 ldi r24,lo8(4)
206 0076 87BB out 55-0x20,r24
211:src/BLMC.c **** STEUER_C_L;
208 .LM11:
209 0078 82B3 in r24,50-0x20
210 007a 877E andi r24,lo8(-25)
211 007c 82BB out 50-0x20,r24
212 007e 959A sbi 50-0x20,5
212:src/BLMC.c **** SENSE_A;
214 .LM12:
215 0080 17B8 out 39-0x20,__zero_reg__
216 0082 00C0 rjmp .L13
217 .L8:
213:src/BLMC.c **** SENSE_RISING_INT;
214:src/BLMC.c **** break;
215:src/BLMC.c **** case 3:
216:src/BLMC.c **** STEUER_B_H;
219 .LM13:
220 0084 81EA ldi r24,lo8(-95)
221 0086 8FBD out 79-0x20,r24
222 0088 81E6 ldi r24,lo8(97)
223 008a 85BD out 69-0x20,r24
224 008c 84E0 ldi r24,lo8(4)
225 008e 87BB out 55-0x20,r24
217:src/BLMC.c **** STEUER_A_L;
227 .LM14:
228 0090 82B3 in r24,50-0x20
229 0092 8F7C andi r24,lo8(-49)
230 0094 82BB out 50-0x20,r24
231 0096 939A sbi 50-0x20,3
218:src/BLMC.c **** SENSE_C;
233 .LM15:
234 0098 82E0 ldi r24,lo8(2)
235 009a 87B9 out 39-0x20,r24
236 .L14:
219:src/BLMC.c **** SENSE_FALLING_INT;
238 .LM16:
239 009c 4098 cbi 40-0x20,0
240 009e 0895 ret
241 .L9:
220:src/BLMC.c **** break;
221:src/BLMC.c **** case 4:
222:src/BLMC.c **** STEUER_C_H;
243 .LM17:
244 00a0 81EA ldi r24,lo8(-95)
245 00a2 8FBD out 79-0x20,r24
246 00a4 81E6 ldi r24,lo8(97)
247 00a6 85BD out 69-0x20,r24
248 00a8 82E0 ldi r24,lo8(2)
249 00aa 87BB out 55-0x20,r24
223:src/BLMC.c **** STEUER_A_L;
251 .LM18:
252 00ac 82B3 in r24,50-0x20
253 00ae 8F7C andi r24,lo8(-49)
254 00b0 82BB out 50-0x20,r24
255 00b2 939A sbi 50-0x20,3
224:src/BLMC.c **** SENSE_B;
257 .LM19:
258 00b4 81E0 ldi r24,lo8(1)
259 .L15:
260 00b6 87B9 out 39-0x20,r24
261 .L13:
225:src/BLMC.c **** SENSE_RISING_INT;
263 .LM20:
264 00b8 88B1 in r24,40-0x20
265 00ba 8360 ori r24,lo8(3)
266 00bc 88B9 out 40-0x20,r24
267 00be 0895 ret
268 .L10:
226:src/BLMC.c **** break;
227:src/BLMC.c **** case 5:
228:src/BLMC.c **** STEUER_C_H;
270 .LM21:
271 00c0 81EA ldi r24,lo8(-95)
272 00c2 8FBD out 79-0x20,r24
273 00c4 81E6 ldi r24,lo8(97)
274 00c6 85BD out 69-0x20,r24
275 00c8 82E0 ldi r24,lo8(2)
276 00ca 87BB out 55-0x20,r24
229:src/BLMC.c **** STEUER_B_L;
278 .LM22:
279 00cc 82B3 in r24,50-0x20
280 00ce 877D andi r24,lo8(-41)
281 00d0 82BB out 50-0x20,r24
282 00d2 949A sbi 50-0x20,4
230:src/BLMC.c **** SENSE_A;
284 .LM23:
285 00d4 17B8 out 39-0x20,__zero_reg__
231:src/BLMC.c **** SENSE_FALLING_INT;
287 .LM24:
288 00d6 4098 cbi 40-0x20,0
289 .L12:
290 00d8 0895 ret
291 /* epilogue: frame size=0 */
292 /* epilogue: noreturn */
293 /* epilogue end (size=0) */
294 /* function Manuell size 99 (99) */
296 .Lscope2:
298 .stabd 78,0,0
300 .global __vector_16
302 __vector_16:
303 .stabd 46,0,0
305 .LM25:
306 .LFBB3:
307 /* prologue: frame size=0 */
308 00da 1F92 push __zero_reg__
309 00dc 0F92 push __tmp_reg__
310 00de 0FB6 in __tmp_reg__,__SREG__
311 00e0 0F92 push __tmp_reg__
312 00e2 1124 clr __zero_reg__
313 00e4 0F93 push r16
314 00e6 1F93 push r17
315 00e8 2F93 push r18
316 00ea 3F93 push r19
317 00ec 4F93 push r20
318 00ee 5F93 push r21
319 00f0 6F93 push r22
320 00f2 7F93 push r23
321 00f4 8F93 push r24
322 00f6 9F93 push r25
323 00f8 AF93 push r26
324 00fa BF93 push r27
325 00fc EF93 push r30
326 00fe FF93 push r31
327 /* prologue end (size=19) */
328 .L63:
330 .LM26:
331 0100 88B1 in r24,40-0x20
332 0102 9927 clr r25
333 0104 6894 set
334 0106 14F8 bld __zero_reg__,5-1
335 0108 9695 1: lsr r25
336 010a 8795 ror r24
337 010c 1694 lsr __zero_reg__
338 010e 01F4 brne 1b
339 0110 082F mov r16,r24
340 0112 0170 andi r16,lo8(1)
342 .LM27:
343 0114 1091 0000 lds r17,Phase
344 0118 1230 cpi r17,lo8(2)
345 011a 01F4 brne .+2
346 011c 00C0 rjmp .L21
348 .LM28:
349 011e 1330 cpi r17,lo8(3)
350 0120 00F4 brsh .L25
351 0122 1123 tst r17
352 0124 01F0 breq .L19
353 0126 1130 cpi r17,lo8(1)
354 0128 01F0 breq .+2
355 012a 00C0 rjmp .L18
356 012c 00C0 rjmp .L20
357 .L25:
358 012e 1430 cpi r17,lo8(4)
359 0130 01F4 brne .+2
360 0132 00C0 rjmp .L23
361 0134 1430 cpi r17,lo8(4)
362 0136 00F4 brsh .+2
363 0138 00C0 rjmp .L22
364 013a 1530 cpi r17,lo8(5)
365 013c 01F0 breq .+2
366 013e 00C0 rjmp .L18
367 0140 00C0 rjmp .L24
368 .L19:
370 .LM29:
371 0142 81EA ldi r24,lo8(-95)
372 0144 8FBD out 79-0x20,r24
373 0146 81E6 ldi r24,lo8(97)
374 0148 85BD out 69-0x20,r24
375 014a 88E0 ldi r24,lo8(8)
376 014c 87BB out 55-0x20,r24
378 .LM30:
379 014e 0023 tst r16
380 0150 01F0 breq .L26
382 .LM31:
383 0152 82B3 in r24,50-0x20
384 0154 877E andi r24,lo8(-25)
385 0156 82BB out 50-0x20,r24
386 0158 959A sbi 50-0x20,5
388 .LM32:
389 015a 8091 0000 lds r24,ZeitZumAdWandeln
390 015e 8111 cpse r24,__zero_reg__
391 0160 00D0 rcall AdConvert
392 .L28:
394 .LM33:
395 0162 4098 cbi 40-0x20,0
397 .LM34:
398 0164 81E0 ldi r24,lo8(1)
399 0166 87B9 out 39-0x20,r24
400 0168 00C0 rjmp .L58
401 .L26:
403 .LM35:
404 016a 82B3 in r24,50-0x20
405 016c 877D andi r24,lo8(-41)
406 016e 82BB out 50-0x20,r24
407 0170 949A sbi 50-0x20,4
408 0172 00C0 rjmp .L18
409 .L20:
411 .LM36:
412 0174 82B3 in r24,50-0x20
413 0176 877E andi r24,lo8(-25)
414 0178 82BB out 50-0x20,r24
415 017a 959A sbi 50-0x20,5
417 .LM37:
418 017c 0023 tst r16
419 017e 01F4 brne .L30
421 .LM38:
422 0180 81EA ldi r24,lo8(-95)
423 0182 8FBD out 79-0x20,r24
424 0184 81E6 ldi r24,lo8(97)
425 0186 85BD out 69-0x20,r24
426 0188 84E0 ldi r24,lo8(4)
427 018a 87BB out 55-0x20,r24
429 .LM39:
430 018c 8091 0000 lds r24,ZeitZumAdWandeln
431 0190 8111 cpse r24,__zero_reg__
432 0192 00D0 rcall AdConvert
433 .L32:
435 .LM40:
436 0194 17B8 out 39-0x20,__zero_reg__
437 .L62:
439 .LM41:
440 0196 88B1 in r24,40-0x20
441 0198 8360 ori r24,lo8(3)
442 019a 88B9 out 40-0x20,r24
443 .L58:
445 .LM42:
446 019c 8091 0000 lds r24,Phase
447 01a0 8F5F subi r24,lo8(-(1))
448 01a2 8093 0000 sts Phase,r24
449 .L59:
451 .LM43:
452 01a6 8091 0000 lds r24,CntKommutierungen
453 01aa 9091 0000 lds r25,(CntKommutierungen)+1
454 01ae 0196 adiw r24,1
455 01b0 9093 0000 sts (CntKommutierungen)+1,r25
456 01b4 8093 0000 sts CntKommutierungen,r24
457 01b8 00C0 rjmp .L18
458 .L30:
460 .LM44:
461 01ba 81EA ldi r24,lo8(-95)
462 01bc 8FBD out 79-0x20,r24
463 01be 81E6 ldi r24,lo8(97)
464 01c0 85BD out 69-0x20,r24
465 01c2 88E0 ldi r24,lo8(8)
466 01c4 00C0 rjmp .L60
467 .L21:
469 .LM45:
470 01c6 81EA ldi r24,lo8(-95)
471 01c8 8FBD out 79-0x20,r24
472 01ca 81E6 ldi r24,lo8(97)
473 01cc 85BD out 69-0x20,r24
474 01ce 84E0 ldi r24,lo8(4)
475 01d0 87BB out 55-0x20,r24
477 .LM46:
478 01d2 0023 tst r16
479 01d4 01F0 breq .L34
481 .LM47:
482 01d6 82B3 in r24,50-0x20
483 01d8 8F7C andi r24,lo8(-49)
484 01da 82BB out 50-0x20,r24
485 01dc 939A sbi 50-0x20,3
487 .LM48:
488 01de 8091 0000 lds r24,ZeitZumAdWandeln
489 01e2 8111 cpse r24,__zero_reg__
490 01e4 00D0 rcall AdConvert
491 .L36:
493 .LM49:
494 01e6 17B9 out 39-0x20,r17
495 01e8 00C0 rjmp .L61
496 .L34:
498 .LM50:
499 01ea 82B3 in r24,50-0x20
500 01ec 877E andi r24,lo8(-25)
501 01ee 82BB out 50-0x20,r24
502 01f0 959A sbi 50-0x20,5
503 01f2 00C0 rjmp .L18
504 .L22:
506 .LM51:
507 01f4 82B3 in r24,50-0x20
508 01f6 8F7C andi r24,lo8(-49)
509 01f8 82BB out 50-0x20,r24
510 01fa 939A sbi 50-0x20,3
512 .LM52:
513 01fc 0023 tst r16
514 01fe 01F4 brne .L38
516 .LM53:
517 0200 81EA ldi r24,lo8(-95)
518 0202 8FBD out 79-0x20,r24
519 0204 81E6 ldi r24,lo8(97)
520 0206 85BD out 69-0x20,r24
521 0208 82E0 ldi r24,lo8(2)
522 020a 87BB out 55-0x20,r24
524 .LM54:
525 020c 8091 0000 lds r24,ZeitZumAdWandeln
526 0210 8111 cpse r24,__zero_reg__
527 0212 00D0 rcall AdConvert
528 .L40:
530 .LM55:
531 0214 81E0 ldi r24,lo8(1)
532 0216 87B9 out 39-0x20,r24
533 0218 00C0 rjmp .L62
534 .L38:
536 .LM56:
537 021a 81EA ldi r24,lo8(-95)
538 021c 8FBD out 79-0x20,r24
539 021e 81E6 ldi r24,lo8(97)
540 0220 85BD out 69-0x20,r24
541 0222 84E0 ldi r24,lo8(4)
542 0224 00C0 rjmp .L60
543 .L23:
545 .LM57:
546 0226 81EA ldi r24,lo8(-95)
547 0228 8FBD out 79-0x20,r24
548 022a 81E6 ldi r24,lo8(97)
549 022c 85BD out 69-0x20,r24
550 022e 82E0 ldi r24,lo8(2)
551 0230 87BB out 55-0x20,r24
553 .LM58:
554 0232 0023 tst r16
555 0234 01F0 breq .L42
557 .LM59:
558 0236 82B3 in r24,50-0x20
559 0238 877D andi r24,lo8(-41)
560 023a 82BB out 50-0x20,r24
561 023c 949A sbi 50-0x20,4
563 .LM60:
564 023e 8091 0000 lds r24,ZeitZumAdWandeln
565 0242 8111 cpse r24,__zero_reg__
566 0244 00D0 rcall AdConvert
567 .L44:
569 .LM61:
570 0246 17B8 out 39-0x20,__zero_reg__
571 .L61:
573 .LM62:
574 0248 4098 cbi 40-0x20,0
575 024a 00C0 rjmp .L58
576 .L42:
578 .LM63:
579 024c 82B3 in r24,50-0x20
580 024e 8F7C andi r24,lo8(-49)
581 0250 82BB out 50-0x20,r24
582 0252 939A sbi 50-0x20,3
583 0254 00C0 rjmp .L18
584 .L24:
586 .LM64:
587 0256 82B3 in r24,50-0x20
588 0258 877D andi r24,lo8(-41)
589 025a 82BB out 50-0x20,r24
590 025c 949A sbi 50-0x20,4
592 .LM65:
593 025e 0023 tst r16
594 0260 01F4 brne .L46
596 .LM66:
597 0262 81EA ldi r24,lo8(-95)
598 0264 8FBD out 79-0x20,r24
599 0266 81E6 ldi r24,lo8(97)
600 0268 85BD out 69-0x20,r24
601 026a 88E0 ldi r24,lo8(8)
602 026c 87BB out 55-0x20,r24
604 .LM67:
605 026e 8091 0000 lds r24,ZeitZumAdWandeln
606 0272 8111 cpse r24,__zero_reg__
607 0274 00D0 rcall AdConvert
608 .L48:
610 .LM68:
611 0276 82E0 ldi r24,lo8(2)
612 0278 87B9 out 39-0x20,r24
614 .LM69:
615 027a 88B1 in r24,40-0x20
616 027c 8360 ori r24,lo8(3)
617 027e 88B9 out 40-0x20,r24
619 .LM70:
620 0280 1092 0000 sts Phase,__zero_reg__
621 0284 00C0 rjmp .L59
622 .L46:
624 .LM71:
625 0286 81EA ldi r24,lo8(-95)
626 0288 8FBD out 79-0x20,r24
627 028a 81E6 ldi r24,lo8(97)
628 028c 85BD out 69-0x20,r24
629 028e 82E0 ldi r24,lo8(2)
630 .L60:
631 0290 87BB out 55-0x20,r24
632 .L18:
634 .LM72:
635 0292 4599 sbic 40-0x20,5
636 0294 00C0 rjmp .L50
637 0296 0023 tst r16
638 0298 01F0 breq .+2
639 029a 00C0 rjmp .L63
640 .L50:
641 029c 459B sbis 40-0x20,5
642 029e 00C0 rjmp .L52
643 02a0 0023 tst r16
644 02a2 01F4 brne .+2
645 02a4 00C0 rjmp .L63
646 .L52:
648 .LM73:
649 02a6 1092 0000 sts ZeitZumAdWandeln,__zero_reg__
650 /* epilogue: frame size=0 */
651 02aa FF91 pop r31
652 02ac EF91 pop r30
653 02ae BF91 pop r27
654 02b0 AF91 pop r26
655 02b2 9F91 pop r25
656 02b4 8F91 pop r24
657 02b6 7F91 pop r23
658 02b8 6F91 pop r22
659 02ba 5F91 pop r21
660 02bc 4F91 pop r20
661 02be 3F91 pop r19
662 02c0 2F91 pop r18
663 02c2 1F91 pop r17
664 02c4 0F91 pop r16
665 02c6 0F90 pop __tmp_reg__
666 02c8 0FBE out __SREG__,__tmp_reg__
667 02ca 0F90 pop __tmp_reg__
668 02cc 1F90 pop __zero_reg__
669 02ce 1895 reti
670 /* epilogue end (size=19) */
671 /* function __vector_16 size 257 (219) */
673 .Lscope3:
675 .stabd 78,0,0
676 .global Phase
677 .global Phase
678 .section .bss
681 Phase:
682 0000 00 .skip 1,0
683 .global ShadowTCCR1A
684 .global ShadowTCCR1A
687 ShadowTCCR1A:
688 0001 00 .skip 1,0
689 .global CompFreigabeTimer
690 .data
693 CompFreigabeTimer:
694 0000 64 .byte 100
695 .global CompInterruptFreigabe
696 .global CompInterruptFreigabe
697 .section .bss
700 CompInterruptFreigabe:
701 0002 00 .skip 1,0
706 .text
708 .Letext0:
709 /* File "src/BLMC.c": code 366 = 0x016e ( 318), prologues 24, epilogues 24 */
DEFINED SYMBOLS
*ABS*:00000000 BLMC.c
/tmp/ccDcOot8.s:2 *ABS*:0000003f __SREG__
/tmp/ccDcOot8.s:3 *ABS*:0000003e __SP_H__
/tmp/ccDcOot8.s:4 *ABS*:0000003d __SP_L__
/tmp/ccDcOot8.s:5 *ABS*:00000000 __tmp_reg__
/tmp/ccDcOot8.s:6 *ABS*:00000001 __zero_reg__
/tmp/ccDcOot8.s:102 .text:00000000 __vector_4
/tmp/ccDcOot8.s:129 .text:00000014 Manuell
/tmp/ccDcOot8.s:681 .bss:00000000 Phase
/tmp/ccDcOot8.s:302 .text:000000da __vector_16
/tmp/ccDcOot8.s:687 .bss:00000001 ShadowTCCR1A
/tmp/ccDcOot8.s:693 .data:00000000 CompFreigabeTimer
/tmp/ccDcOot8.s:700 .bss:00000002 CompInterruptFreigabe
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
ZeitZumAdWandeln
AdConvert
CntKommutierungen