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

📄 isr.asm

📁 本文以举例的方式从硬件和软件原理上阐述了如何运用SPBA01B对MCU进行IO扩展、总线扩展和级联使用.
💻 ASM
字号:
//****************************************************************
// Function: Fast Interrupt Service routine Area                     
//      Service for     (1)PWM FIQ
//                      (2)Timer A FIQ
//                      (3)Timer B FIQ
//      User's FIQ must hook on here                            
//  _FIQ:                            // Fast interrupt entrence
//  _IRQ1:                           // interrupt entrence
//  _IRQ2:                           // interrupt entrence
//  _IRQ3:                           // interrupt entrence
//  _IRQ4:                           // interrupt entrence
//  _IRQ5:                           // interrupt entrence
//  _IRQ6:                           // interrupt entrence     
//  _IRQ7:                           // interrupt entrence
//****************************************************************
.public _BREAK 
.public _FIQ 
.public _IRQ0 
.public _IRQ1 
.public _IRQ2 
.public _IRQ3 
.public _IRQ4 
.public _IRQ5 
.public _IRQ6 
.public _IRQ7 

.include hardware.inc               // include hardware information
.include dvr.inc 

.TEXT
/////////////////////////////////////////////////////////////////////////////////////////
// Function: Fast Interrupt Service routine Area                     
////////////////////////////////////////////////////////////////////////////////////////

_FIQ:                  
		push r1,r5 to [sp]                
        call    F_FIQ_Service_SACM_DVR  // for playback
        r1 = C_FIQ_TMA
        [P_INT_Clear] = r1
        pop r1,r5 from [sp] 
        reti             
/////////////////////////////////////////////////////////////////////////////////////////
// Function: Interrupt Service routine Area                     
//      Service for     IRQ1 - IRQ7
//      User's IRQ must hook on here                                 
/////////////////////////////////////////////////////////////////////////////////////////        
_BREAK:        
        push r1,r4 to [sp] 
        pop r1,r4 from [sp] 
        reti          
// ---------------------------------------------------------------------------
_IRQ0:        
        push r1,r4 to [sp] 
        pop r1,r4 from [sp] 
        reti          
// ---------------------------------------------------------------------------
_IRQ1:        
		push r1,r4 to [sp] 
        pop r1,r4 from [sp] 
        reti   
// ---------------------------------------------------------------------------
_IRQ2:        
        push r1,r4 to [sp] 
        pop r1,r4 from [sp] 
        reti          
// ---------------------------------------------------------------------------
_IRQ3:        
        push r1,r4 to [sp] 
        
        pop r1,r4 from [sp] 
        reti          
// ---------------------------------------------------------------------------
_IRQ4:        
        push r1,r4 to [sp] 
        
        pop r1,r4 from [sp] 
        reti   
// ---------------------------------------------------------------------------
_IRQ5:        
        push r1 to [sp] 
        r1 = 0x0001
        [P_Watchdog_Clear] = r1
        r1 = C_IRQ5_2Hz
        [P_INT_Clear] = r1
        pop r1 from [sp] 
        reti          
// ---------------------------------------------------------------------------
_IRQ6:        
        push r1,r4 to [sp] 
        pop r1,r4 from [sp] 
        reti          
// ---------------------------------------------------------------------------
_IRQ7:        
        push r1,r4 to [sp] 
        pop r1,r4 from [sp] 
        reti          
// ---------------------------------------------------------------------------
        

⌨️ 快捷键说明

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