微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > ARM技术讨论 > 关于s3c6410裸机中断返回问题

关于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函数里
试试看,,

回复的不是很多啊 我来顶下

我来顶下

呵呵 好东西看看了

我也来顶一下把。

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

网站地图

Top