OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4287|回复: 4

两个定时器中断会相互干扰的问题

[复制链接]

33

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2019-11-13
在线时间
39 小时
发表于 2021-11-23 16:40:08 | 显示全部楼层 |阅读模式
3金钱
目前的程序设计是这样的:
定时器1:陀螺传感器需要高速的数据读取,目前使用1ms的定时器,循环读取。每次读取陀螺数据需要大概0.2ms。
定时器2:其他传感器以及算法处理不需要很高的速率,目前使用10ms的定时器,并通过串口(DMA传输)向外实时输出数据。每次需要大概7ms。
目前的问题在于,如果同时打开两个定时器,而且所有程序都执行,则由定时器2控制的串口输出就会断数。如果将定时器1中的读取陀螺数据的程序
注释掉(定时器1继续工作)则不会断数。
中断分组为:2位抢占优先级, 2位响应优先级
两个定时器优先级相同:抢占优先级为0,相应优先级为0;均比串口优先级高。

求问各位大佬,这个可能是什么问题导致的,有没有改进建议,谢谢!!!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

3344

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8464
金钱
8464
注册时间
2020-5-11
在线时间
3904 小时
发表于 2021-11-23 16:55:42 | 显示全部楼层
本帖最后由 LcwSwust 于 2021-11-23 16:57 编辑

这种问题当然得上程序啦。

DMA传输串口数据是不可能被中断服务函数打断的,应当不至于“断数”。
“断数”是指间隔较大,但是数据并未丢失是吧?
专治疑难杂症
回复

使用道具 举报

33

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2019-11-13
在线时间
39 小时
 楼主| 发表于 2021-11-23 17:01:39 | 显示全部楼层
LcwSwust 发表于 2021-11-23 16:55
这种问题当然得上程序啦。

DMA传输串口数据是不可能被打断的,应当不至于“断数”。

      程序大概是这样的:
       if(MGZUpdate){
                //陀螺数据读取
                MGZUpdate = 0; //定时器1(1KHz)中断时MGZUpdate = 1;
        }  
          
        if(SensorUpdate){
               //核心算法
               //串口数据传输
               SensorUpdate = 0;//定时器2(100Hz)中断时SensorUpdate= 1;
        }
正常来说串口输出应该每10ms一次,但是目前有时候就会20ms一次,这样是不是可以说明数据传输断了?
回复

使用道具 举报

12

主题

3344

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8464
金钱
8464
注册时间
2020-5-11
在线时间
3904 小时
发表于 2021-11-23 17:09:09 | 显示全部楼层
baiye2019 发表于 2021-11-23 17:01
程序大概是这样的:
       if(MGZUpdate){
                //陀螺数据读取

哦,你这应当是标志位的处理不当。你想一下,如果正在处理SensorUpdate标志,核心算法之后又产生了一个SensorUpdate标志,那么后面这个标志是不是就被你清掉了,但未得到处理。

标志位应尽早清除,比如这样改:
if(SensorUpdate){
               SensorUpdate = 0;//定时器2(100Hz)中断时SensorUpdate= 1;
               //核心算法
               //串口数据传输
        }

专治疑难杂症
回复

使用道具 举报

33

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2019-11-13
在线时间
39 小时
 楼主| 发表于 2021-11-23 19:14:23 | 显示全部楼层
LcwSwust 发表于 2021-11-23 17:09
哦,你这应当是标志位的处理不当。你想一下,如果正在处理SensorUpdate标志,核心算法[/back ...

OK,感谢大佬~我仔细研究研究~
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 14:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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