OpenEdv-开源电子网

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

关于实验10输入捕获实验。怎么将测量脉冲宽度修改为脉冲计数?

[复制链接]

8

主题

45

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2016-9-2
在线时间
59 小时
发表于 2017-7-13 23:20:15 | 显示全部楼层 |阅读模式
1金钱

这里的话不知道怎么修改

这里的话不知道怎么修改

我看了原子哥的视频。注意到手册中提到除了用于测量脉冲宽度以外,还可以用于脉冲计数。然后想到脉冲计数又跟频率计有关。而频率计FPGA的DSP的,我看不到,在想着怎么修改这个例程。可以用于脉冲计数。萌新求学,希望指点。

最佳答案

查看完整内容[请看2#楼]

在中断服务程序里面设置一个静态变量例如 static uint16_t temp; 然后 if(TIM5CH1_CAPTURE_STA&0X80) //如果成功捕获到了一次高电平脉宽 { temp++; TIM5CH1_CAPTURE_STA=0; //开启下一次捕获 OLED_ShowNum(30,4,temp,4,16); } 这样就行了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2017-2-7
在线时间
17 小时
发表于 2017-7-13 23:20:16 | 显示全部楼层
在中断服务程序里面设置一个静态变量例如    static        uint16_t  temp;
然后
if(TIM5CH1_CAPTURE_STA&0X80)     //如果成功捕获到了一次高电平脉宽
{
                temp++;

                TIM5CH1_CAPTURE_STA=0;                             //开启下一次捕获
          
                OLED_ShowNum(30,4,temp,4,16);       
}
这样就行了
回复

使用道具 举报

2

主题

26

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
203
金钱
203
注册时间
2017-7-6
在线时间
45 小时
发表于 2017-7-14 09:42:20 | 显示全部楼层
设定一个全局变量,每次捕获到上升沿就+1,这样就可以计数脉冲数量了
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2017-7-19
在线时间
0 小时
发表于 2017-7-19 14:19:44 | 显示全部楼层
苻轩宇1993 发表于 2017-7-14 09:42
设定一个全局变量,每次捕获到上升沿就+1,这样就可以计数脉冲数量了

这种在高频的情况下 如果是多通道公用一个中断 会不会出问题 我基本都是使用外部中断模式去 计数
回复

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2017-12-17
在线时间
2 小时
发表于 2017-12-17 10:51:45 | 显示全部楼层
17855831963 发表于 2017-7-13 23:20
在中断服务程序里面设置一个静态变量例如    static        uint16_t  temp;
然后
if(TIM5CH1_CAPTURE_STA&0X80) ...

这个根本就不行,试了一下
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2019-5-14
在线时间
1 小时
发表于 2019-5-14 17:19:52 | 显示全部楼层
楼主你搞出来了吗,小弟我现在也需要改一下,求助!!!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-5 05:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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