Subversion Repositories BL-Ctrl

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

   1                            .file   "timer0.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:
 101                    .global __vector_9
 103                    __vector_9:
 104                            .stabd  46,0,0
   1:src/timer0.c  **** /*****************************************************************************
   2:src/timer0.c  ****  
   3:src/timer0.c  **** *****************************************************************************/
   4:src/timer0.c  **** #include "main.h"
   5:src/timer0.c  **** volatile unsigned int CountMilliseconds = 0;
   6:src/timer0.c  **** volatile unsigned char Timer0Overflow;
   7:src/timer0.c  ****  
   8:src/timer0.c  **** enum {
   9:src/timer0.c  ****   STOP             = 0,
  10:src/timer0.c  ****   CK               = 1,
  11:src/timer0.c  ****   CK8              = 2,
  12:src/timer0.c  ****   CK64             = 3,
  13:src/timer0.c  ****   CK256            = 4,
  14:src/timer0.c  ****   CK1024           = 5,
  15:src/timer0.c  ****   T0_FALLING_EDGE  = 6,
  16:src/timer0.c  ****   T0_RISING_EDGE   = 7
  17:src/timer0.c  **** };
  18:src/timer0.c  **** 
  19:src/timer0.c  **** 
  20:src/timer0.c  **** SIGNAL(SIG_OVERFLOW0)
  21:src/timer0.c  **** {
 106                    .LM0:
 107                    .LFBB1:
 108                    /* prologue: frame size=0 */
 109 0000 1F92                  push __zero_reg__
 110 0002 0F92                  push __tmp_reg__
 111 0004 0FB6                  in __tmp_reg__,__SREG__
 112 0006 0F92                  push __tmp_reg__
 113 0008 1124                  clr __zero_reg__
 114 000a 8F93                  push r24
 115 000c 9F93                  push r25
 116                    /* prologue end (size=7) */
  22:src/timer0.c  ****  static unsigned char cnt;
  23:src/timer0.c  ****  Timer0Overflow++;
 118                    .LM1:
 119 000e 8091 0000             lds r24,Timer0Overflow
 120 0012 8F5F                  subi r24,lo8(-(1))
 121 0014 8093 0000             sts Timer0Overflow,r24
  24:src/timer0.c  ****  if(!cnt--)
 123                    .LM2:
 124 0018 8091 0000             lds r24,cnt.2066
 125 001c 8150                  subi r24,lo8(-(-1))
 126 001e 8093 0000             sts cnt.2066,r24
 127 0022 8F3F                  cpi r24,lo8(-1)
 128 0024 01F4                  brne .L10
  25:src/timer0.c  ****   {
  26:src/timer0.c  ****    cnt = 3;
 130                    .LM3:
 131 0026 83E0                  ldi r24,lo8(3)
 132 0028 8093 0000             sts cnt.2066,r24
  27:src/timer0.c  ****    CountMilliseconds += 1;
 134                    .LM4:
 135 002c 8091 0000             lds r24,CountMilliseconds
 136 0030 9091 0000             lds r25,(CountMilliseconds)+1
 137 0034 0196                  adiw r24,1
 138 0036 9093 0000             sts (CountMilliseconds)+1,r25
 139 003a 8093 0000             sts CountMilliseconds,r24
  28:src/timer0.c  ****    if(I2C_Timeout) I2C_Timeout--;
 141                    .LM5:
 142 003e 8091 0000             lds r24,I2C_Timeout
 143 0042 9091 0000             lds r25,(I2C_Timeout)+1
 144 0046 0097                  sbiw r24,0
 145 0048 01F0                  breq .L4
 146 004a 0197                  sbiw r24,1
 147 004c 9093 0000             sts (I2C_Timeout)+1,r25
 148 0050 8093 0000             sts I2C_Timeout,r24
 149                    .L4:
  29:src/timer0.c  ****    if(PPM_Timeout) PPM_Timeout--; else anz_ppm_werte = 0;
 151                    .LM6:
 152 0054 8091 0000             lds r24,PPM_Timeout
 153 0058 8823                  tst r24
 154 005a 01F0                  breq .L6
 155 005c 8091 0000             lds r24,PPM_Timeout
 156 0060 8150                  subi r24,lo8(-(-1))
 157 0062 8093 0000             sts PPM_Timeout,r24
 158 0066 00C0                  rjmp .L8
 159                    .L6:
 160 0068 1092 0000             sts anz_ppm_werte,__zero_reg__
 161                    .L8:
  30:src/timer0.c  ****    if(SIO_Timeout) SIO_Timeout--;
 163                    .LM7:
 164 006c 8091 0000             lds r24,SIO_Timeout
 165 0070 9091 0000             lds r25,(SIO_Timeout)+1
 166 0074 0097                  sbiw r24,0
 167 0076 01F0                  breq .L10
 168 0078 0197                  sbiw r24,1
 169 007a 9093 0000             sts (SIO_Timeout)+1,r25
 170 007e 8093 0000             sts SIO_Timeout,r24
 171                    .L10:
 172                    /* epilogue: frame size=0 */
 173 0082 9F91                  pop r25
 174 0084 8F91                  pop r24
 175 0086 0F90                  pop __tmp_reg__
 176 0088 0FBE                  out __SREG__,__tmp_reg__
 177 008a 0F90                  pop __tmp_reg__
 178 008c 1F90                  pop __zero_reg__
 179 008e 1895                  reti
 180                    /* epilogue end (size=7) */
 181                    /* function __vector_9 size 72 (58) */
 186                    .Lscope1:
 188                            .stabd  78,0,0
 190                    .global Timer0_Init
 192                    Timer0_Init:
 193                            .stabd  46,0,0
  31:src/timer0.c  ****   } 
  32:src/timer0.c  **** }
  33:src/timer0.c  **** 
  34:src/timer0.c  **** 
  35:src/timer0.c  **** void Timer0_Init(void)
  36:src/timer0.c  **** {
 195                    .LM8:
 196                    .LFBB2:
 197                    /* prologue: frame size=0 */
 198                    /* prologue end (size=0) */
  37:src/timer0.c  ****  TCCR0  = TIMER_TEILER;
 200                    .LM9:
 201 0090 82E0                  ldi r24,lo8(2)
 202 0092 83BF                  out 83-0x20,r24
  38:src/timer0.c  **** // TCNT0 = -TIMER_RELOAD_VALUE;  // reload
  39:src/timer0.c  ****  TIM0_START;
 204                    .LM10:
 205 0094 89B7                  in r24,89-0x20
 206 0096 8160                  ori r24,lo8(1)
 207 0098 89BF                  out 89-0x20,r24
  40:src/timer0.c  ****  TIMER2_INT_ENABLE;
 209                    .LM11:
 210 009a 89B7                  in r24,89-0x20
 211 009c 8064                  ori r24,lo8(64)
 212 009e 89BF                  out 89-0x20,r24
 213                    /* epilogue: frame size=0 */
 214 00a0 0895                  ret
 215                    /* epilogue end (size=1) */
 216                    /* function Timer0_Init size 9 (8) */
 218                    .Lscope2:
 220                            .stabd  78,0,0
 223                    .global SetDelay
 225                    SetDelay:
 226                            .stabd  46,0,0
  41:src/timer0.c  **** }
  42:src/timer0.c  **** 
  43:src/timer0.c  **** 
  44:src/timer0.c  **** unsigned int SetDelay(unsigned int t)
  45:src/timer0.c  **** {
 228                    .LM12:
 229                    .LFBB3:
 230                    /* prologue: frame size=0 */
 231                    /* prologue end (size=0) */
  46:src/timer0.c  ****   return(CountMilliseconds + t - 1);                                             
 233                    .LM13:
 234 00a2 2091 0000             lds r18,CountMilliseconds
 235 00a6 3091 0000             lds r19,(CountMilliseconds)+1
 236 00aa 2150                  subi r18,lo8(-(-1))
 237 00ac 3040                  sbci r19,hi8(-(-1))
  47:src/timer0.c  **** }
 239                    .LM14:
 240 00ae 820F                  add r24,r18
 241 00b0 931F                  adc r25,r19
 242                    /* epilogue: frame size=0 */
 243 00b2 0895                  ret
 244                    /* epilogue end (size=1) */
 245                    /* function SetDelay size 9 (8) */
 247                    .Lscope3:
 249                            .stabd  78,0,0
 252                    .global CheckDelay
 254                    CheckDelay:
 255                            .stabd  46,0,0
  48:src/timer0.c  **** 
  49:src/timer0.c  **** char CheckDelay (unsigned int t)
  50:src/timer0.c  **** {
 257                    .LM15:
 258                    .LFBB4:
 259                    /* prologue: frame size=0 */
 260                    /* prologue end (size=0) */
  51:src/timer0.c  ****   return(((t - CountMilliseconds) & 0x8000) >> 8);
 262                    .LM16:
 263 00b4 2091 0000             lds r18,CountMilliseconds
 264 00b8 3091 0000             lds r19,(CountMilliseconds)+1
 265 00bc 821B                  sub r24,r18
 266 00be 930B                  sbc r25,r19
 267 00c0 892F                  mov r24,r25
 268 00c2 9927                  clr r25
 269 00c4 8078                  andi r24,lo8(-128)
  52:src/timer0.c  **** }
 271                    .LM17:
 272 00c6 9927                  clr r25
 273                    /* epilogue: frame size=0 */
 274 00c8 0895                  ret
 275                    /* epilogue end (size=1) */
 276                    /* function CheckDelay size 11 (10) */
 278                    .Lscope4:
 280                            .stabd  78,0,0
 283                    .global Delay_ms
 285                    Delay_ms:
 286                            .stabd  46,0,0
  53:src/timer0.c  **** 
  54:src/timer0.c  **** void Delay_ms(unsigned int w)
  55:src/timer0.c  **** {
 288                    .LM18:
 289                    .LFBB5:
 290                    /* prologue: frame size=0 */
 291                    /* prologue end (size=0) */
 292 00ca AC01                  movw r20,r24
 293                    .LBB6:
 294                    .LBB7:
 296                    .LM19:
 297 00cc 2091 0000             lds r18,CountMilliseconds
 298 00d0 3091 0000             lds r19,(CountMilliseconds)+1
 299                    .LBE7:
 300                    .LBE6:
  56:src/timer0.c  ****  unsigned int akt;
  57:src/timer0.c  ****  akt = SetDelay(w);
  58:src/timer0.c  ****  while (!CheckDelay(akt));
 302                    .LM20:
 303 00d4 2150                  subi r18,lo8(-(-1))
 304 00d6 3040                  sbci r19,hi8(-(-1))
 305                    .L18:
 306                    .LBB8:
 307                    .LBB9:
 309                    .LM21:
 310 00d8 8091 0000             lds r24,CountMilliseconds
 311 00dc 9091 0000             lds r25,(CountMilliseconds)+1
 312                    .LBE9:
 313                    .LBE8:
 315                    .LM22:
 316 00e0 B901                  movw r22,r18
 317 00e2 681B                  sub r22,r24
 318 00e4 790B                  sbc r23,r25
 319 00e6 CB01                  movw r24,r22
 320 00e8 840F                  add r24,r20
 321 00ea 951F                  adc r25,r21
 322 00ec 8070                  andi r24,lo8(-32768)
 323 00ee 9078                  andi r25,hi8(-32768)
 324 00f0 892F                  mov r24,r25
 325 00f2 9927                  clr r25
 326 00f4 8823                  tst r24
 327 00f6 01F0                  breq .L18
 328                    /* epilogue: frame size=0 */
 329 00f8 0895                  ret
 330                    /* epilogue end (size=1) */
 331                    /* function Delay_ms size 24 (23) */
 333                    .Lscope5:
 335                            .stabd  78,0,0
 336                    .global CountMilliseconds
 337                    .global CountMilliseconds
 338                            .section .bss
 341                    CountMilliseconds:
 342 0000 0000                  .skip 2,0
 343                            .lcomm cnt.2066,1
 344                            .comm Timer0Overflow,1,1
 348                            .text
 350                    .Letext0:
 351                    /* File "src/timer0.c": code  125 = 0x007d ( 107), prologues   7, epilogues  11 */
DEFINED SYMBOLS
                            *ABS*:00000000 timer0.c
     /tmp/ccieS1Um.s:2      *ABS*:0000003f __SREG__
     /tmp/ccieS1Um.s:3      *ABS*:0000003e __SP_H__
     /tmp/ccieS1Um.s:4      *ABS*:0000003d __SP_L__
     /tmp/ccieS1Um.s:5      *ABS*:00000000 __tmp_reg__
     /tmp/ccieS1Um.s:6      *ABS*:00000001 __zero_reg__
     /tmp/ccieS1Um.s:103    .text:00000000 __vector_9
                            *COM*:00000001 Timer0Overflow
                             .bss:00000002 cnt.2066
     /tmp/ccieS1Um.s:341    .bss:00000000 CountMilliseconds
     /tmp/ccieS1Um.s:192    .text:00000090 Timer0_Init
     /tmp/ccieS1Um.s:225    .text:000000a2 SetDelay
     /tmp/ccieS1Um.s:254    .text:000000b4 CheckDelay
     /tmp/ccieS1Um.s:285    .text:000000ca Delay_ms

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
I2C_Timeout
PPM_Timeout
anz_ppm_werte
SIO_Timeout