关于s3c6410裸机中断返回问题
时间:10-02
整理:3721RD
点击:
函数如下所示:
#include "s3c6410_system.h"
#include "uart.h"
u8 count =0;
//按键中断
void __irq Isr_KeyInt(void)
{
EINT0PEND = 1; //写1清除中断标志
count ++;
ClearInterrupt(INT_EINT0); //中断结束
}
//初始化按键中断
void KEY_Init(void)
{
count =0 ;
GPION->CON = 2; //外部中断模式
EINT0CON0 = 0x2;
EINT0PEND = 0xffffffff;
EINT0MASK &= ~(BIT0); //取消中断屏蔽
Set_IsrAddr(INT_EINT0,(u32)Isr_KeyInt); //设置中断矢量入口
Set_IntEnable(INT_EINT0,Enable); //使能中断
}
//子函数,测试能否返回main
void key_test(void)
{
printf("this is the test\n");
while (count !=3)
;
printf("count = %d\n",count); //此语句可以执行,结束后 不能返回main
}
//主函数
void main(void)
{
UART0_Init(0,66,115200); //初始化串口0发送,波特率115200
KEY_Init(); //初始化按键外部中断
printf("system init!\n"); //打印初始化成功的信息
key_test() ;
printf("return to main\n"); //不能返回main,此语句不能被执行
}
进入中断count ++,但是 满足count =3后 ,test函数应该执行完毕,返回main函数,但是该程序打印完count=3后 不能返回main而是跳出如下的窗口
请大侠 帮忙看看
把软中断屏蔽了
或者:然后把key_test 代码复制到main函数里
试试看,,
回复的不是很多啊 我来顶下
我来顶下
呵呵 好东西看看了
我也来顶一下把。