OpenEdv-开源电子网

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

原子哥的红外线捕获实验,几条代码看不懂,大神讲解下

[复制链接]

32

主题

153

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
453
金钱
453
注册时间
2014-11-5
在线时间
0 小时
发表于 2014-12-13 03:00:28 | 显示全部楼层 |阅读模式
5金钱
TIM4->CCMR2|=3<<12;   //IC4F=0011 配置输入滤波器 8个定时器时钟周期滤波
:这个滤波配置是说明定时器,计数器累加8次吗?


TIM4->ARR=10000;   //设定计数器自动重装值 最大10ms溢出  
:红外线的引导码都是9+4.5毫秒呀,为什么配置10毫秒就溢出?


TIM4->SC=71;   //预分频器,1M的计数频率,1us加1.
:不懂为什么预分频是71,71怎么能除尽?


if((RmtSta&0X0F)<14)RmtSta++;
:这里是什么意思呢?


捕获4.5毫秒的 低电平是怎么捕获的呢?

由于看了两天了,没看出捕获的思路,只有问问各路大神  捕获的具体过程。。。。


最佳答案

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

首先要说的是   定时器捕获的是 高电平时间    1.   滤波器是一个由事件计数器组成的数字滤波器  滤波增加数据的稳定性     2.   这个10ms溢出 ,个人理解应该是   捕获完一次按键数据后红外会发出一个大于10ms的高电平,而在正常捕获情况下高电平时间4.5ms左右 3.   这个预分频嘛  看 ...
酱油团队--
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5782
金钱
5782
注册时间
2013-11-22
在线时间
1212 小时
发表于 2014-12-13 03:00:29 | 显示全部楼层
首先要说的是   定时器捕获的是 高电平时间   
1.   滤波器是一个由事件计数器组成的数字滤波器  滤波增加数据的稳定性    
2.   这个10ms溢出 ,个人理解应该是   捕获完一次按键数据后红外会发出一个大于10ms的高电平,而在正常捕获情况下高电平时间4.5ms左右
3.   这个预分频嘛  看一下手册就明白的   实际分频系数要 +1的   CK_CNT=fCK_PSC/(PSC[15:0]+1)
4.   RmtSta的[3:0]用来记录溢出次数的 到15就溢出了   没溢出之前溢出一次就自加一次   溢出了就清零
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-13 03:00:29 | 显示全部楼层
回复【3楼】xiaolong12:
---------------------------------
完全不对。
是指采样到合法电平后,要连续采样8个时钟周期,如果电平还是合法,那么认为这是一次有效的输入。否则无效。忽略。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

32

主题

153

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
453
金钱
453
注册时间
2014-11-5
在线时间
0 小时
 楼主| 发表于 2014-12-14 01:23:23 | 显示全部楼层
回复【2楼】lycreturn:
---------------------------------
滤波器TIM4->CCMR2|=3<<12;   //IC4F=0011 配置输入滤波器 8个定时器时钟周期滤波

这个滤波的意思是不是计数器要加8微妙才捕获中断一次?
酱油团队--
回复

使用道具 举报

32

主题

153

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
453
金钱
453
注册时间
2014-11-5
在线时间
0 小时
 楼主| 发表于 2014-12-14 12:53:10 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
定时器的计数器溢出一次,算一个周期?
酱油团队--
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-14 23:02:46 | 显示全部楼层
回复【5楼】xiaolong12:
---------------------------------
那要看你怎么想的了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

32

主题

153

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
453
金钱
453
注册时间
2014-11-5
在线时间
0 小时
 楼主| 发表于 2014-12-15 00:31:38 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
没懂------------------------怎么才算一个定时器周期。。
酱油团队--
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-15 19:41:04 | 显示全部楼层
回复【7楼】xiaolong12:
---------------------------------
我是理解为:一次定时器计数器的溢出
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

32

主题

153

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
453
金钱
453
注册时间
2014-11-5
在线时间
0 小时
 楼主| 发表于 2014-12-15 23:52:45 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
红外线实验的程序里,滤波配置的是8个时钟周期,定时器溢出为10毫秒,溢出8次不就是80毫秒?但是红外线的引导码是9毫秒的高电平加4.5毫秒的低电平,定时器怎么能捕获到呢?           就这疑 惑了。。。
酱油团队--
回复

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
发表于 2014-12-16 02:10:45 | 显示全部楼层
回复【9楼】xiaolong12:
---------------------------------
时钟周期不等于定时器溢出周期吧。可能是对定时器时钟的计数,也可能是分频后再计数。真想研究,还是去查一查手册吧。
业余程序玩家。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-27 21:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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