本篇介绍外部中断的使用,在板子上,每块DSP都将一个外部中断分配给了一个按键,配合本篇说明和上一篇关于FLAG的编程说明,就可以完成按键控制LED功能。
编程手册中有关中断寄存器的说明:
中断寄存器
中断控制寄存器:INTCTL
中断屏蔽寄存器:IMASK
优先级寄存器: PMASK
中断锁存寄存器:ILAT (只读)
按键初始化函数
/***********************************************************
函 数 名:Init_PushButtons()
功 能:初始化IRQ3作为按键的输入端口
说 明:
入口参数:
返 回 值:无
设 计: 日 期:2012-04-04
修 改: 日 期:2012-04-18
************************************************************/
void Init_PushButtons(void)
{
volatile int temp;
//注册中断函数
INSTALL_ISR(SIGIRQ3, IRQ3_ISR);//__IVIRQ3
//设置跳沿触发
SET_IRQ_EDGE_SENSETIVE(3);
//允许外部中断
SET_REG_BIT(__IMASKH,INT_IRQ3);
}
中断服务函数
/***********************************************************
函 数 名:IRQ3_ISR()
功 能:IRQ3的中断服务函数
说 明:
入口参数:
返 回 值:无
设 计: 日 期:2012-04-05
修 改: 日 期:2012-04-18
************************************************************/
void IRQ3_ISR(void)
{
//将LED状态取反
TGL_FLAG(0);
}
EnjoyYourself!