⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 isr.lst

📁 嵌入式操作系统Salvo 在单片机C8051F350上的移植
💻 LST
字号:
C51 COMPILER V8.08   ISR                                                                   01/15/2008 19:31:23 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE ISR
OBJECT MODULE PLACED IN .\out-file\isr.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE isr.c OPTIMIZE(9,SIZE) BROWSE DEFINE(MAKE_WITH_FREE_LIB,SYSI,USE_INTERRUPTS
                    -) DEBUG OBJECTEXTEND PRINT(.\list-file\isr.lst) TABS(2) OBJECT(.\out-file\isr.obj)

line level    source

   1          /************************************************************ 
   2          Copyright (C) 1995-2002 Pumpkin, Inc. and its
   3          Licensor(s). Freely distributable.
   4          
   5          $Source: C:\\RCS\\d\\salvo\\tut\\tu1\\isr.c,v $
   6          $Author: aek $
   7          $Revision: 3.22 $
   8          $Date: 2003-07-28 18:41:36-07 $
   9          
  10          Source for tutorial programs. Contains the interrupt service
  11          routine and other interrupt-associated code for all of
  12          the tutorials. Organized by compiler and target (SYS*).
  13          
  14          ************************************************************/
  15          
  16          #include "isr.h"
  17          #include <salvo.h>
  18          
  19          
  20          #if   defined(USE_INTERRUPTS)
  21          
  22          #if   defined(SYSA) || defined(SYSH) || defined(SYSF) \
  23           ||   defined(SYSP)
              
              #if   defined(SYSA) || defined(SYSH) || defined(SYSF) 
               
              void interrupt IntVector( void )
              
              #elif defined(SYSP)
              
              #pragma vector=0x08
              
              __interrupt void IntVector( void )
              #endif
              {
                  if ( T0IE && T0IF ) {
                      T0IF = 0;    
                      TMR0 -= TMR0_RELOAD;
                       
                      OSTimer();
                  }
              }
              
              
              #elif defined(SYSE)
              
              #pragma interrupt ISRHigh save=PROD,section(".tmpdata")
              
              void ISRHigh( void )
              {
                if ( INTCONbits.TMR0IE && INTCONbits.TMR0IF ) {
                  INTCONbits.TMR0IF = 0;
                  TMR0 -= TMR0_RELOAD;
                  
C51 COMPILER V8.08   ISR                                                                   01/15/2008 19:31:23 PAGE 2   

                  OSTimer();
                }
              }
              
              #pragma code IntVectorHigh = 0x08
              void IntVectorHigh( void )
              {   
                _asm
                goto  ISRHigh
                _endasm
              }
              
              
              
              #elif defined(SYSI)
  70          
  71          /* Reload values for Timer0 - 5msec interrupts for Oscillator at 11.0592 MHz */
  72          /* This code courtesy Michael Stepanov.                                      */
  73          //#define TIMER_H         238 /* TH0 reload value                  */
  74          //#define TIMER_L           0   /* TL0 reload value                  */
  75          
  76          
  77          #define TIMER_H         0x10 /* TH0 reload value                  */
  78          #define TIMER_L         0xBE   /* TL0 reload value                  */
  79          
  80          
  81          void timer0 (void) interrupt 1 //using 2
  82          {
  83   1        /* stop, reload and start timer. */
  84   1        TR0 =       0;
  85   1      
  86   1        TL0 = TIMER_L;
  87   1      
  88   1        TH0 = TIMER_H;
  89   1        
  90   1        TR0 =       1;
  91   1        
  92   1        OSTimer();
  93   1      }
  94          
  95          
  96          #elif defined(SYSL)
              
              ROM_VECTOR(NMI,  IntVector);
              ROM_VECTOR(INT1, IntVector);
              ROM_VECTOR(INT2, IntVector);
              ROM_VECTOR(INT3, IntVector);
              ROM_VECTOR(INT4, IntVector);
              ROM_VECTOR(INT5, IntVector);
              ROM_VECTOR(INT6, IntVector);
              ROM_VECTOR(INT7, IntVector);
              
              #pragma interrupt_level 1
              void fast interrupt IntVector( void )
              {
                OSTimer();
              }
              
              
              
              #elif defined(SYSM)
              
C51 COMPILER V8.08   ISR                                                                   01/15/2008 19:31:23 PAGE 3   

              ROM_VECTOR(0x0B, timer0);
              
              interrupt void timer0 ( void)
              {
                OSTimer();
              }
              
              
              #elif defined(SYSQ) || defined(SYSR) || defined(SYSS) || defined (SYSX) /* MSP430 */
              
              #if   defined(SYSQ)
              #if (__VER__ < 200)
              interrupt[TIMERA0_VECTOR] void Timer_A (void)
              #else
              #pragma vector=TIMERA0_VECTOR
              __interrupt void Timer_A (void)
              #endif
              #elif defined(SYSR)
              interrupt[TIMERA0_VECTOR] void Timer_A (void)
              #elif defined(SYSS)
              #pragma interrupt_handler Timer_A:TIMERA0_VECTOR
              void Timer_A (void)
              #elif defined(SYSX)
              void Timer_A (void) __interrupt[TIMERA0_VECTOR]
              #endif
              {
                CCR0 += 10000;
                  OSTimer(); 
              }                      
              
              
              #elif defined(SYST) /* M68HC11 */ 
              
              #pragma interrupt_handler intVector
              
              void intVector ( void )
              {
                /* clear RTIF */
                TFLG2 |= 0b01000000;
                
                  OSTimer(); 
              }                      
              
              
              #pragma abs_address:0x00EB     /* RTI BUFFALO 3.4 EVB11  */
              
                asm(" jmp _intVector");    
              
              #pragma end_abs_address
              
              
              #elif defined(SYSU) /* Z8 Encore */
              
              #pragma interrupt
              void IntVector(void) 
              { 
                  OSTimer(); 
              }
              
              
              #elif defined(SYSV) /* AVR */
              
C51 COMPILER V8.08   ISR                                                                   01/15/2008 19:31:23 PAGE 4   

              #pragma interrupt_handler IntVector:iv_TIMER1_CAPT IntVector:iv_TIMER1_COMPA
              
              void IntVector(void) 
              { 
                  OSTimer(); 
              }
              
              
              #elif defined(SYSW) /* TMS320C28x */
              /* vectors are defined in vectors.asm */
              
              interrupt void ISR14(void) /* Timer 2 is in INTVECT #14 */
              { 
                  OSTimer(); 
              }
              
              
              #elif defined(SYSY) /* AVR */
              #include <avr/signal.h>
              
              SIGNAL(SIG_OUTPUT_COMPARE1A)
              { 
                  OSTimer(); 
              }
              
              
              #elif defined(SYSAA) /* TMS320C240x */
              /* vectors are defined in vectors.asm */
              
              #define HEARTBEAT_LED_PRESCALAR 50 
              unsigned char prescalar = HEARTBEAT_LED_PRESCALAR;
              
              interrupt void ISR3(void) /* Timer 2 is in INT3 */
              { 
                /* clear T2PINT flag -- required for this type of interrupt.*/
                  *EVAIFRB = *EVAIFRB & 0x0001;      
                
                /* System tick period is 10ms @ 30MHz. Toggle the IOPC0 pin */
                /*  every 250ms via a divide-by-50 prescalar.               */
                if (--prescalar == 0)
                {
                  prescalar = HEARTBEAT_LED_PRESCALAR;
                  
                  /* XOR the IOPC0 bit to toggle the pin */
                    *PCDATDIR = *PCDATDIR ^ 0x0001;    
                }
              
                /* a system tick occured, so call OSTimer(). */
                  OSTimer(); 
                  
              }
              
              
              #else /* SYS* not defined */                        
              #error Undefined Salvo test system (SYS*). Definition required.
              
              #endif
 236          
 237          #endif
 238          


C51 COMPILER V8.08   ISR                                                                   01/15/2008 19:31:23 PAGE 5   

MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     69    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -