野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9216|回复: 6

中断求助

[复制链接]
发表于 2017-3-14 23:23:23 | 显示全部楼层 |阅读模式
本帖最后由 332052001 于 2017-3-14 23:38 编辑

我外部按键中断,进入中断后程序执行正常,可是程序执行完成以后不返回原来的程序;但是再按键又能再次进入中断,正常执行,求解


后来发现程序一直在这里(如图)

20170314233519.png
回复

使用道具 举报

发表于 2017-3-15 08:42:13 | 显示全部楼层
SysTick_Config的形参能不能是 72 ?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-15 15:16:16 | 显示全部楼层
fire 发表于 2017-3-15 08:42
SysTick_Config的形参能不能是 72 ?

在外部按键中断里面调用了systick_delay_us这个函数,main里面也调用了,都是正常的,唯一就是出了外部中断后就一直在这里循环
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-15 16:38:36 | 显示全部楼层
fire 发表于 2017-3-15 08:42
SysTick_Config的形参能不能是 72 ?

发现中断后再回来,嘀嗒定时器当前值并没有变化了,好像时钟停了一样 QQ截图20170315163641.png
但是再次进中断定时器当前值又开始走了



回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-15 18:02:37 | 显示全部楼层
本帖最后由 332052001 于 2017-3-15 18:07 编辑
fire 发表于 2017-3-15 08:42
SysTick_Config的形参能不能是 72 ?

问题已找到,感谢火哥回复
SysTick的中断优先级低于外部按键中断,进了外部中断后再次被初始化调用,出了外部中断后无法回到被打断之前的状态。

要是把SysTick的优先级提高到比当前中断更高应该也不会出现这个问题吧?  
我现在是这样写就没有问题了



void EXTI15_10_IRQHandler (void)
{
        u8 a;
        u32 CTRL,LOAD,VAL;
        if(EXTI_GetITStatus(EXTI_Line13) != RESET)
        {
                        
           CTRL=SysTick->CTRL;
           LOAD=SysTick->LOAD;
           VAL=SysTick->VAL;
        
           for(a=0;a<10;a++)
                   {
                           LED_0(1);               
                           SysTick_Delay_ms(100);
                           LED_0(0);
                           SysTick_Delay_ms (100);        
                   }
        }

        CTRL=SysTick->CTRL=CTRL;
        SysTick->LOAD=LOAD;
        SysTick->VAL=VAL;        
        EXTI_ClearITPendingBit(EXTI_Line13);

}




回复 支持 反对

使用道具 举报

发表于 2017-3-15 18:37:13 | 显示全部楼层
332052001 发表于 2017-3-15 18:02
问题已找到,感谢火哥回复
SysTick的中断优先级低于外部按键中断,进了外部中断后再次被初始化调用,出 ...

牛逼啊                           
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-15 18:49:22 | 显示全部楼层

我的办法是否很蠢?我是才学这个的,还请火哥不要嘲笑,多多指点
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-9-21 17:42 , Processed in 0.033139 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表