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

📄 isr.lis

📁 这是AVR单片机上能跑的嵌入式操作系统salvo
💻 LIS
字号:
                        .module isr.c
                        .area vector(rom, abs)
                        .org 44
 002C 0C940000          jmp _IntVector
                        .org 40
 0028 0C940000          jmp _IntVector
                        .area text(rom, con, rel)
 0000                   .dbfile E:\PROGRAMS\controller\salvo-M32\salvo\isr.c
 0000                   .dbfunc e IntVector _IntVector fV
                        .even
 0000           _IntVector::
 0000 0E940000          xcall push_lset
 0004                   .dbline -1
 0004                   .dbline 173
 0004           ; /************************************************************ 
 0004           ; Copyright (C) 1995-2002 Pumpkin, Inc. and its
 0004           ; Licensor(s). Freely distributable.
 0004           ; 
 0004           ; $Source: C:\\RCS\\d\\salvo\\tut\\tu1\\isr.c,v $
 0004           ; $Author: aek $
 0004           ; $Revision: 3.24 $
 0004           ; $Date: 2004-02-21 17:41:57-08 $
 0004           ; 
 0004           ; Source for tutorial programs. Contains the interrupt service
 0004           ; routine and other interrupt-associated code for all of
 0004           ; the tutorials. Organized by compiler and target (SYS*).
 0004           ; 
 0004           ; ************************************************************/
 0004           ; 
 0004           ; #include "isr.h"
 0004           ; #include <salvo.h>
 0004           ; 
 0004           ; #if   defined(USE_INTERRUPTS)
 0004           ; 
 0004           ; #if   defined(SYSA) || defined(SYSH) || defined(SYSF) \
 0004           ;  ||   defined(SYSP)
 0004           ; 
 0004           ; #if   defined(SYSA) || defined(SYSH) || defined(SYSF) 
 0004           ; void interrupt IntVector( void )
 0004           ; #elif defined(SYSP)
 0004           ; #pragma vector=0x08
 0004           ; __interrupt void IntVector( void )
 0004           ; #endif
 0004           ; {
 0004           ;     if ( T0IE && T0IF ) {
 0004           ;         T0IF = 0;    
 0004           ;         TMR0 -= TMR0_RELOAD;
 0004           ;          
 0004           ;         OSTimer();
 0004           ;     }
 0004           ; }
 0004           ; 
 0004           ; 
 0004           ; #elif defined(SYSE)
 0004           ; 
 0004           ; #pragma interrupt ISRHigh save=PROD,section(".tmpdata")
 0004           ; 
 0004           ; void ISRHigh( void )
 0004           ; {
 0004           ;       if ( INTCONbits.TMR0IE && INTCONbits.TMR0IF ) {
 0004           ;               INTCONbits.TMR0IF = 0;
 0004           ;               TMR0 -= TMR0_RELOAD;
 0004           ;               
 0004           ;               OSTimer();
 0004           ;       }
 0004           ; }
 0004           ; 
 0004           ; #pragma code IntVectorHigh = 0x08
 0004           ; void IntVectorHigh( void )
 0004           ; {     
 0004           ;       _asm
 0004           ;       goto    ISRHigh
 0004           ;       _endasm
 0004           ; }
 0004           ; 
 0004           ; 
 0004           ; 
 0004           ; #elif defined(SYSI)
 0004           ; 
 0004           ; /* Reload values for Timer0 - 5msec interrupts for Oscillator at 11.0592 MHz */
 0004           ; /* This code courtesy Michael Stepanov.                                      */
 0004           ; #define TIMER_H                                       238 /* TH0 reload value                  */
 0004           ; #define TIMER_L                                               0   /* TL0 reload value                  */
 0004           ; 
 0004           ; 
 0004           ; void timer0 (void) interrupt 1 using 2
 0004           ; {
 0004           ;       /* stop, reload and start timer. */
 0004           ;       TR0 =       0;
 0004           ;       TH0 = TIMER_H;
 0004           ;       TL0 = TIMER_L;
 0004           ;       TR0 =       1;
 0004           ;       
 0004           ;       OSTimer();
 0004           ; }
 0004           ; 
 0004           ; 
 0004           ; #elif defined(SYSL)
 0004           ; 
 0004           ; ROM_VECTOR(NMI,  IntVector);
 0004           ; ROM_VECTOR(INT1, IntVector);
 0004           ; ROM_VECTOR(INT2, IntVector);
 0004           ; ROM_VECTOR(INT3, IntVector);
 0004           ; ROM_VECTOR(INT4, IntVector);
 0004           ; ROM_VECTOR(INT5, IntVector);
 0004           ; ROM_VECTOR(INT6, IntVector);
 0004           ; ROM_VECTOR(INT7, IntVector);
 0004           ; 
 0004           ; #pragma interrupt_level 1
 0004           ; void fast interrupt IntVector( void )
 0004           ; {
 0004           ;       OSTimer();
 0004           ; }
 0004           ; 
 0004           ; 
 0004           ; 
 0004           ; #elif defined(SYSM)
 0004           ; 
 0004           ; ROM_VECTOR(0x0B, timer0);
 0004           ; 
 0004           ; interrupt void timer0 ( void)
 0004           ; {
 0004           ;       OSTimer();
 0004           ; }
 0004           ; 
 0004           ; 
 0004           ; #elif defined(SYSQ) || defined(SYSR) || defined(SYSS) || defined (SYSX) \
 0004           ;  ||   defined(SYSAB) /* MSP430 */
 0004           ; 
 0004           ; #if   defined(SYSQ)
 0004           ; #if (__VER__ < 200)
 0004           ; interrupt[TIMERA0_VECTOR] void Timer_A (void)
 0004           ; #else
 0004           ; #pragma vector=TIMERA0_VECTOR
 0004           ; __interrupt void Timer_A (void)
 0004           ; #endif
 0004           ; #elif defined(SYSR)
 0004           ; interrupt[TIMERA0_VECTOR] void Timer_A (void)
 0004           ; #elif defined(SYSS)
 0004           ; #pragma interrupt_handler Timer_A:TIMERA0_VECTOR
 0004           ; void Timer_A (void)
 0004           ; #elif defined(SYSX)
 0004           ; void Timer_A (void) __interrupt[TIMERA0_VECTOR]
 0004           ; #elif defined(SYSAB)
 0004           ; void interrupt Timer_A (void) @ TIMER_A_CC0_VCTR
 0004           ; #endif
 0004           ; {
 0004           ;       TACCR0 += 10000;
 0004           ;     OSTimer(); 
 0004           ; }                      
 0004           ; 
 0004           ; 
 0004           ; #elif defined(SYST) /* M68HC11 */ 
 0004           ; 
 0004           ; #pragma interrupt_handler intVector
 0004           ; 
 0004           ; void intVector ( void )
 0004           ; {
 0004           ;       /* clear RTIF */
 0004           ;       TFLG2 |= 0b01000000;
 0004           ;       
 0004           ;     OSTimer(); 
 0004           ; }                      
 0004           ; 
 0004           ; 
 0004           ; #pragma abs_address:0x00EB       /* RTI BUFFALO 3.4 EVB11  */
 0004           ; 
 0004           ;       asm(" jmp _intVector");    
 0004           ; 
 0004           ; #pragma end_abs_address
 0004           ; 
 0004           ; 
 0004           ; #elif defined(SYSU) /* Z8 Encore */
 0004           ; 
 0004           ; #pragma interrupt
 0004           ; void IntVector(void) 
 0004           ; {     
 0004           ;     OSTimer(); 
 0004           ; }
 0004           ; 
 0004           ; 
 0004           ; #elif defined(SYSV) /* AVR + ICCAVR */
 0004           ; 
 0004           ; #pragma interrupt_handler IntVector:iv_TIMER0_OVF IntVector:iv_TIMER0_COMP
 0004           ; 
 0004           ; void IntVector(void) 
 0004           ; {     
 0004                   .dbline 174
 0004           ;     OSTimer(); 
 0004 0E940000          xcall _OSTimer
 0008                   .dbline -2
 0008           L5:
 0008 0E940000          xcall pop_lset
 000C                   .dbline 0 ; func end
 000C 1895              reti
 000E                   .dbend

⌨️ 快捷键说明

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