📄 isr.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 + -