微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > 我的中断怎么进不了啊,请大家帮忙啊

我的中断怎么进不了啊,请大家帮忙啊

时间:10-02 整理:3721RD 点击:
#include \"LF2047REGS.H\"
void led_test(void);
main()
{
asm(\" setc SXM \"

;
asm(\" clrc OVM \"

;
asm(\" clrc CNF \"

;
asm(\" setc INTM \");
SCSR1=0x83fe; // CLKOUT为CPU时钟,4倍频,打开所有的模块时钟,无效地址检测为0
IMR=0X0000; // 禁止所有中断
IFR=0X0FFFF; //中断标志为零
WDCR=0X0E8; //关看门狗
WSGR=WSGR&0X0; //外部存储零等待
MCRA=MCRA|0X04; // 中断口设置
XINT1CR=0x01; //下降沿,高优先
IMR=IMR|0X0020; //开中断
asm(\" clrc INTM \");
while(1)
{;}
}

/*********************************************************************************************************
外部中断子函数
*********************************************************************************************************/
void interrupt EX1INT()
{
led_test(); //测试程序
asm(\" clrc INTM \");
return;
}
/*********************************************************************************************************
中断子函数
*********************************************************************************************************/
void interrupt nothing()
{
asm(\" clrc INTM \");
return;
}

你的中断初始化不完整。
还有两个寄存器EVAIMRA和EVAIFRA没有初始化。

我试试啊
可我不明白,我用的是外部中断1,为什么要设置EVA的寄存器呢?
请大哥帮帮忙啊

对不起,我弄错了。
你用外部中断1的高优先级,应该
IMR=IMR|0X0001;
而 IMR=IMR|0X0020; 是低优先级的外部中断。

在中断子程序中还须再次设置寄存器:XINT1CR

谢谢大家啊
我搞定拉

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top