标题: 红外发送码的时间是怎么算出来的? [打印本页]

作者: exv    时间: 2014-11-29 11:35
标题: 红外发送码的时间是怎么算出来的?
本帖最后由 exv 于 2014-11-29 11:52 编辑

以下截取自光盘中 红外发射 的源代码:

  1. //发送9ms的起始码
  2.   irendcount=223;
  3.   irsflag=1;
  4.   ircount=0;
  5.   do{}while(ircount<irendcount);
  6.   //发送4.5ms的结果码
  7.   irendcount=117;
  8.   irsflag=0;
  9.   ircount=0;
复制代码

在板子上可运行,就是不知道这 223 和 117 是怎么算出的。 网上搜索能找到和我一样的疑问,但却无人能答:
我写一个红外发射的程序 我的想法是: 因为是38K调制, 所以1s/38k=26us 发送9ms的起始码需要9ms/26us=346次次中断计数。而我看的资料上是计了223次, 不知道是如何计算的.

搜索 2012-07-18 08:40 sjg1298363738 | 分类:军事  | 浏览187次

之前看过宋雪松老师的教学视频,51单片机的各个环节都讲得详细,唯独这个红外,只讲接收不讲发射,扯了这样一句“日本NEC公司”开发云云便不了了之。莫非这段日本人写的诡异代码难倒了宋老师?

作者: admin    时间: 2014-11-29 12:32
对于这个问题 ,我记得51hei有一个专门的帖子解释过,关于红外发射的问题还是2010年的帖子:http://www.51hei.com/bbs/dpj-9757-1.html
作者: exv    时间: 2014-11-29 13:08
admin 发表于 2014-11-29 12:32
对于这个问题 ,我记得51hei有一个专门的帖子解释过,我找一下

谢胡老师,不必找了,应该是这个帖子:
http://www.51hei.com/bbs/dpj-9757-1.html

C语言自身的一些问题,不过用示波器或者逻辑分析仪解决这个问题终归不是一个稳定的办法。

换一个不同型号,甚至换个晶振就得重新测一遍。








欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1