野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15229|回复: 2

关于红外的实践经验与曲折例程

[复制链接]
发表于 2015-5-21 13:49:39 | 显示全部楼层 |阅读模式
弄了三天的红外遥控,终于成功了。
发现红外对时间的掌握太严谨了,我想把time时间的值给打印出来,整个程序就出现问题了。一个打印花了几微秒的时间,然后中断判断时间那里就判断失误。
我没用stm32,弄了stm8s的,移植火哥的红外程序。
起初我是直接看代码移植的,没在stm32上试。
第二天的时候,我就用stm32上试,直接下载火哥的程序,想吧time的时间打印出来,发现遥控都打印不出来,我还以为火哥的程序有问题呢。(哈哈~)
今天才发现原来一条代码延误了这么多时间(对于单片机和红外来说很久了0rz....)。
发现了一些问题,还没有解决。
1.定时器(详情看图)
我不知道是不是我算错了,感觉时间跟我定时器的时间对不上,时间也设置的跟火哥的时间是一致的,就是不知道是不是我算错了
我说下我算的思路(我跟着他例程算的)。
首先分频,时钟是16M的,16分频,就等于1M,然后计算最小时机,1/1000000=0.000001s=0.001ms=1us。
本来打算就设置成1us定时的,可是不知道为什么,在设置周期的时候,设置成1他不能定时,无奈只能2us开始了。
(知道答案的请告诉我啊,我都不知道我错在哪了。)
2.获取时间(详情看图)
在中断的获取时间却偏偏不是按我想的那样。
前导码就开始有问题了,我中断查看前导码的值却是0x41,计算65次,65x20=1300=1.3ms,(测了好几次,在64~65之间)明显不是4.5ms,可是我的示波器看了下,时间是对的,所以就是说,定时器不知道为什么没有我预想的时间。
(知道答案的请告诉我啊,我都不知道我错在哪了。)
3.计算时间
根据4.5ms=65,推算出一次计算时间=70us,然后分别算出
4ms~4.5ms
0.56ms: 0.2ms~1ms
1.68ms:1ms~2ms
2.1ms:2ms~4ms分别是请看图)。




定时器

定时器

获取时间函数

获取时间函数

中断

中断

结果

结果
回复

使用道具 举报

发表于 2015-5-21 13:52:49 | 显示全部楼层
感谢分享~
通讯时序一般都不要去修改或者插入其它过程,是会干扰到通讯过程的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-21 13:58:34 | 显示全部楼层
flyleaf 发表于 2015-5-21 13:52
感谢分享~
通讯时序一般都不要去修改或者插入其它过程,是会干扰到通讯过程的

感谢火哥点评,但我的问题,为什么我定时的时间跟我预想的不对,好纠结。
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-9-21 19:34 , Processed in 0.031304 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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