Subversion Repositories BL-Ctrl

Rev

Go to most recent revision | 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