📄 irq.c
字号:
//========================================================================
// 文件名称: IRQ.c
// 功能描述: IRQ中断服务程序
// 维护记录: 2006-07-11 V1.0
//========================================================================
#include "SPCE061A.h"
#include "ultrasonic_App.h"
unsigned int uiTim; //4096Hz计数器
//void FIQ(void)__attribute__((ISR));
//void FIQ(void)
//{
// if((*P_INT_Ctrl & 0x8000) != 0)
// { // Fosc/1024 FIQ Interrupt
// *P_INT_Clear = 0x8000;
// }
// else if((*P_INT_Ctrl & 0x2000) != 0)
// { // TimerA FIQ Interrupt
// *P_INT_Clear = 0x2000;
// }
// else if((*P_INT_Ctrl & 0x0800) != 0)
// { // TimerB FIQ Interrupt
// *P_INT_Clear = 0x0800;
// }
// else
// { // Never be here
// *P_INT_Clear = 0xffff;
// }
//}
void IRQ0(void)__attribute__((ISR)); // Fosc/1024 IRQ Interrupt
void IRQ0(void)
{
*P_INT_Clear = 0x4000;
}
void IRQ1(void)__attribute__((ISR)); // TimerA IRQ Interrupt
void IRQ1(void)
{
*P_INT_Clear = 0x2000;
}
void IRQ2(void)__attribute__((ISR)); // TimerB IRQ Interrupt
void IRQ2(void)
{
*P_INT_Clear = 0x0800;
}
void IRQ3(void)__attribute__((ISR));
void IRQ3(void)
{
if((*P_INT_Ctrl & 0x0200) != 0)
{ // EXT2 Interrupt
*P_INT_Clear = 0x0200;
}
else if((*P_INT_Ctrl & 0x0100) != 0)
{ // EXT1 Interrupt
*P_INT_Clear = 0x0100;
EXT1_IRQ_ult(); //调用超声波测距的外部中断服务程序
}
else if((*P_INT_Ctrl & 0x0080) != 0)
{ // Key Interrupt
*P_INT_Clear = 0x0080;
}
else
{ // Never be here
*P_INT_Clear = 0xffff;
}
}
extern void IRQ_PlayService();
void IRQ4(void)__attribute__((ISR));
void IRQ4(void)
{
if((*P_INT_Ctrl & 0x0040) != 0)
{ // 4096Hz Interrupt
uiTim++;
IRQ_PlayService();
*P_INT_Clear = 0x0040;
}
else if((*P_INT_Ctrl & 0x0020) != 0)
{ // 2048Hz Interrupt
*P_INT_Clear = 0x0020;
}
else if((*P_INT_Ctrl & 0x0010) != 0)
{ // 1024Hz Interrupt
*P_INT_Clear = 0x0010;
}
else
{ // Never be here
*P_INT_Clear = 0xffff;
}
}
void IRQ5(void)__attribute__((ISR));
void IRQ5(void)
{
if((*P_INT_Ctrl & 0x0008) != 0)
{ // 4Hz Interrupt
*P_INT_Clear = 0x0008;
}
else if((*P_INT_Ctrl & 0x0004) != 0)
{ // 2Hz Interrupt
*P_INT_Clear = 0x0004;
*P_Watchdog_Clear = 0x0001;
}
else
{ // Never be here
*P_INT_Clear = 0xffff;
}
}
void IRQ6(void)__attribute__((ISR));
void IRQ6(void)
{
if((*P_INT_Ctrl & 0x0002) != 0)
{ // TMB1 Interrupt
*P_INT_Clear = 0x0002;
}
else if((*P_INT_Ctrl & 0x0001) != 0)
{ // TMB2 Interrupt
*P_INT_Clear = 0x0001;
}
else
{ // Never be here
*P_INT_Clear = 0xffff;
}
}
void IRQ7(void)__attribute__((ISR));
void IRQ7()
{
}
void BREAK(void)__attribute__((ISR));
void BREAK(void)
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -