📄 irq.h
字号:
//串口中断回掉函数
void __irq IRQ_UART0(void) //FOR 232
{
IRQ_RS232_fn();
VICVectAddr = 0x00; // 中断处理结束
}
void __irq IRQ_UART1(void) //FOR 422
{
IRQ_RS232GPS_fn();
VICVectAddr = 0x00; // 中断处理结束
}
//外部中断0中断回掉函数
void __irq IRQ_EINT0(void) //FOR USB
{
//buzzer_run(100);
//DelayNS(10);
//buzzer_run(10);
Usb_Exception();
EXTINT=0x01; //清除中断标志
VICVectAddr = 0x00; // 中断处理结束
}
//外部中断1中断回掉函数
void __irq IRQ_EINT1(void)//FOR KEY1
{
buzzer_run(100);
EXTINT=0x02; //清除中断标志
VICVectAddr = 0x00; // 中断处理结束
}
//外部中断2中断回掉函数
void __irq IRQ_EINT2(void)//FOR KEY2
{
buzzer_run(100);
DelayNS(300);
buzzer_run(100);
EXTINT=0x04; //清除中断标志
VICVectAddr = 0x00; // 中断处理结束
}
/****************************************************************************
* 功能:定时器 0 中断
* 入口参数:无
* 出口参数:无
****************************************************************************/
void __irq IRQ_Time0(void)
{
IRQ_Time0_fn();
T0IR = 0x01; // 清除中断标志
VICVectAddr = 0x00; // 通知VIC中断处理结束
}
/****************************************************************************
* 功能:初始化系统所用到的中断
* 入口参数:无
* 出口参数:无
****************************************************************************/
void Enable_Interrupt(void)
{
/* 设置中断允许 */
EXTMODE=0x06; //设置外部中断为边沿出发模式或电平触发
EXTPOLAR=0x00; //设置三个外部中断为下降沿触发
VICIntSelect = 0x00000000; // 设置所有通道为IRQ中断
VICVectCntl0 = 0x20|6; // UART0中断通道分配到IRQ slot 0,即优先级最高
VICVectCntl1 = 0x20|14; // EINT0中断通道分配到IRQ slot 1
VICVectCntl2 = 0x20|15; // EINT1中断通道分配到IRQ slot 2
VICVectCntl3 = 0x20|16; // EINT2中断通道分配到IRQ slot 3
VICVectCntl4 = 0x20|4; // 定时器0中断通道分配
VICVectCntl5 = 0x20|7; //UART1中断
VICVectAddr0 = (uint32)IRQ_UART0; // 设置UART0向量地址
VICVectAddr1 = (uint32)IRQ_EINT0; // 设置EINT0向量地址
VICVectAddr2 = (uint32)IRQ_EINT1; // 设置EINT1向量地址
VICVectAddr3 = (uint32)IRQ_EINT2; // 设置EINT2向量地址
VICVectAddr4 = (uint32)IRQ_Time0; // 设置Timer0中断服务程序地址向量
VICVectAddr5 = (uint32)IRQ_UART1; //设置UART1向量地址
VICIntEnable = 0x0001C0D0; // 使能UART0,UART1,EINT0,EINT1,EINT2,TIMER0中断
}
//#define CLR_INTD12() EXTINT = 0x01 //清除EINT0中断标志
//#define CLR_INT() VICVectAddr = 0x00
/*
void Init_D12Int(void)
{
extern void Usb_Handler(void);
VICVectCntl1 = (0x20 | 0x0E); //EINT0通道分配到IRQ slot 1
VICVectAddr1 = (INT32U)Usb_Handler; //设置EINT0向量地址
VICIntEnable = 1 << 14; //允许EINT0
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -