野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13968|回复: 7

中断嵌套遇到的问题,大伙给看看,问题出在哪儿了??

[复制链接]
发表于 2016-7-17 19:53:23 | 显示全部楼层 |阅读模式
用的是火哥呼吸呼吸灯的例子进行该的,板子是mini的,想要达到的效果是,读取呼吸灯所在的端口的电压(实际上电压值在0.3-3.2V之间变化)状态,即高电平或者低电平(假设该端口为B5),然后将B5的状态值作为另一个端口(假设为A2)电平状态的判断条件,即if(B5=set),则A2=set,否则相反(简写,描述整体要达到的效果)具体的程序如下:在呼吸灯的定时中断中嵌套了一个EXTI_Line2的中断,在写中断服务函数的那张图片上加了一句EXTI_GenerateSWInterrupt(EXTI_Line2);  我再想如果当period_cnt++=1的时候,(period_cnt++的值在1到9的时候)会从EXTI_GenerateSWInterrupt(EXTI_Line2);        这一句进入中断2,只是中断2在这个过程中一直在执行else语句,知道定时中断中在遍历indexWave[]的过程中,让B5的电平为高时,此时,此时中断2的判断条件才满足,才此时将A2端电平置高,,,,各位看官整个过程是不是这样理解啊?

主程序

主程序

TIM3_GPIO_Config

TIM3_GPIO_Config

NVIC

NVIC

TIM3_Mode

TIM3_Mode
5.png
6.png
7.png
回复

使用道具 举报

发表于 2016-7-18 09:00:08 | 显示全部楼层
不知道你究竟想实现什么 ,帮顶
回复 支持 反对

使用道具 举报

发表于 2016-7-18 09:53:20 | 显示全部楼层
帮顶,看不懂,爱莫能助
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-18 09:54:06 | 显示全部楼层
南门静美 发表于 2016-7-18 09:00
不知道你究竟想实现什么 ,帮顶

就是想用一个端口的电平状态作为判断条件去控制另一个端口的电平状态,而且是通过中断嵌套实现的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-18 10:42:38 | 显示全部楼层
有了最新进展,将中断2的程序更改如下后,烧到板子里面,有反应了,确实可以实现A2口的电平高点变化,但问题来了,在烧进程序的一瞬间,A2端口电平高低发生变化(由高变低,然后就不在变化了),我手动复位也会发生电平的变化,那么问题来了,第一个中断是定时器中断(用的是呼吸灯的历程),我将第二个中断嵌套在第一个中断中,设置为软件中断,为什么整个过程中嵌套好像只执行过一次?主函数里面写的是死循环啊
7update .png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-18 18:21:12 | 显示全部楼层
不要沉啊,就没有人看看嘛?后来又发现了问题,嵌套的中断2压根没有执行
回复 支持 反对

使用道具 举报

发表于 2016-7-18 18:44:10 | 显示全部楼层
你这个为啥要用中断,你直接在 主函数里面用一个 while循环,一直读B5的引脚电平,然后判断电平是高还是低,然后根据高低来执行你的程序不就可以了嘛。

回复 支持 反对

使用道具 举报

发表于 2016-7-19 17:02:11 | 显示全部楼层
列兵一号 发表于 2016-7-18 18:21
不要沉啊,就没有人看看嘛?后来又发现了问题,嵌套的中断2压根没有执行

解决了没有?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 20:37 , Processed in 0.050535 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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