硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5173|回复: 5
收起左侧

[有问必答] 通过外部中断的方式,定时器计时对脉冲进行计数

[复制链接]

7

主题

21

回帖

42

积分

新手上路

积分
42
发表于 2021-3-3 14:09:01 | 显示全部楼层 |阅读模式
汉哥,我还是之前那个外部中断计算脉冲的问题,我现在定时器设置1S中断,然后外部中断对脉冲计数。我是对电机的脉冲进行计数的,最后是要得到电机的转速,我这样写有啥问题吗?希望您看还有啥改进的不,给指点下

中断处理函数

中断处理函数
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106905
QQ
发表于 2021-3-4 08:11:25 | 显示全部楼层
不太好,两个中断里面都有对变量的写操作。
回复

使用道具 举报

7

主题

21

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2021-3-4 09:11:29 | 显示全部楼层
eric2013 发表于 2021-3-4 08:11
不太好,两个中断里面都有对变量的写操作。

那怎么优化呢,给个思路呗,我想的就是外部中断里面计数,定时器中断里面将计数值赋值,清零。还有其他什么方法吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106905
QQ
发表于 2021-3-5 08:11:10 | 显示全部楼层
_吕吕 发表于 2021-3-4 09:11
那怎么优化呢,给个思路呗,我想的就是外部中断里面计数,定时器中断里面将计数值赋值,清零。还有其他什 ...

两个中断里面都有对这个变量的写操作,简单些,比如EXTI中断优先级高于定时器(抢占优先级),可以在定时器中断里面对此变量清零时,EC_T.PWM=0前后做个EXTI的开关中断。
回复

使用道具 举报

7

主题

21

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2021-3-8 09:34:39 | 显示全部楼层
eric2013 发表于 2021-3-5 08:11
两个中断里面都有对这个变量的写操作,简单些,比如EXTI中断优先级高于定时器(抢占优先级),可以在定时 ...

那什么时候开EXTI的中断,什么时候关呢。我现在是定时器的优先级高于EXTI中断的优先级。还有就是在清零的前后加上EXTI的开关中断,这个我有点不是很明白为什么,我用过在EXTI中断内开启定时器的中断,定时的开启与关闭
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106905
QQ
发表于 2021-3-8 14:43:16 | 显示全部楼层
_吕吕 发表于 2021-3-8 09:34
那什么时候开EXTI的中断,什么时候关呢。我现在是定时器的优先级高于EXTI中断的优先级。还有就是在清零的 ...

操作变量前后修改。

EXTI抢占优先级高于定时器时,防止抢占定时器
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-9 11:57 , Processed in 0.196550 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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