OpenEdv-开源电子网

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

TIM_SetCounter(TIM2,0); 这个用法蒙圈了

[复制链接]

19

主题

118

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
金钱
214
注册时间
2013-12-2
在线时间
0 小时
发表于 2014-10-19 16:36:32 | 显示全部楼层 |阅读模式
5金钱
教程里说他是计数器寄存值,
看别人写的超声波程序  在外部中断里
void EXTI9_5_IRQHandler(void)
{
delay_us(10);                      //延时10us
     if(EXTI_GetITStatus(EXTI_Line7) != RESET)
{
TIM_SetCounter(TIM2,0);   //   这个函数用于计数个数存放的
TIM_Cmd(TIM2, ENABLE);                                             //开启时钟
UltrasonicWave_Distance=TIM_GetCounter(TIM2)*5*34/200.0;   //但是  这个是什么意思。在超声波使用手册里说测距=(高电平时间*(340m/s))/2  感觉矛盾呀

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-10-19 22:57:57 | 显示全部楼层
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2015-3-5
在线时间
0 小时
发表于 2015-3-5 09:22:45 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
这个程序中的UltrasonicWave_Distance=TIM_GetCounter(TIM2)*5*34/200.0;测出来的为什么是0.85,也就是TIM_GetCounter(TIM2)测出来的永远是1?请大神帮解!
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2017-11-18
在线时间
1 小时
发表于 2017-11-18 10:19:28 | 显示全部楼层
我推导的公式必须乘以1/2才能得到TIM_GetCounter(TIM2)*5*34/200.0
原子哥有没有 推导过程啊
强迫症受不了啊
回复

使用道具 举报

0

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
159
金钱
159
注册时间
2018-8-9
在线时间
25 小时
发表于 2018-11-20 21:33:48 | 显示全部楼层
这个公式后除200.0是啥???
回复

使用道具 举报

4

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2019-3-7
在线时间
13 小时
发表于 2019-3-8 16:08:28 | 显示全部楼层
UltrasonicWave_Distance=TIM_GetCounter(TIM2)*5*34/200.0;
这个公式中的5是什么东西?是来打酱油的吗?
回复

使用道具 举报

4

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2019-3-7
在线时间
13 小时
发表于 2019-3-8 16:12:42 | 显示全部楼层
傲世进 发表于 2018-11-20 21:33
这个公式后除200.0是啥???

这个你还要结合着分子看哟,340m/s 换算成340 000mm/1000 000us=34/100,除以2就是单向的距离,那么不就是34/200勒 ,的是?但是这个公式中的5是什么意思?你知道不?
回复

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2019-5-19
在线时间
9 小时
发表于 2019-7-17 19:50:03 | 显示全部楼层
定义 n,T,V,X;
n:计数个数
T:定时器计时时间 500(ms)=0.5(s)
V:声速 340(m/s)
X:位移  (距离)
公式:n*T*V/2=X     //声波有来回,时间除以2
         n*0.5(s)*340(m/s)/2=X
         转换单位
          n*{(0.5*340)(m)/100}(cm)/2=X(cm)
         整理得:
          n*5*340/200=X(cm)

希望有用

回复

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2019-5-19
在线时间
9 小时
发表于 2019-7-17 20:09:21 | 显示全部楼层
刚才的好像有问题,实测好像不需要除以2
回复

使用道具 举报

0

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2019-4-7
在线时间
16 小时
发表于 2019-7-17 20:39:58 | 显示全部楼层
张子煜 发表于 2019-7-17 20:09
刚才的好像有问题,实测好像不需要除以2

强啊  !!
回复

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2019-5-19
在线时间
9 小时
发表于 2019-7-19 08:29:34 | 显示全部楼层

杰哥,才是强啊
回复

使用道具 举报

21

主题

131

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
425
金钱
425
注册时间
2019-5-12
在线时间
168 小时
发表于 2020-2-26 11:51:44 | 显示全部楼层
本帖最后由 hejun96 于 2020-2-26 14:31 编辑
张子煜 发表于 2019-7-17 19:50
定义 n,T,V,X;
n:计数个数
T:定时器计时时间 500(ms)=0.5(s)

  n*{(0.5*340)(m)/100}(cm)/2=X(cm)

这里/100(cm)  ???  m转换成cm不是(*10^2)???
//频率为1MHz,计数一次的时间是0.001ms

TIM_GetCounter(TIM4)*(10^-6)*340*0.5*100  (cm)/2
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-25 22:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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