Subversion Repositories BL-Ctrl

Rev

Details | Last modification | View Log | RSS feed

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