搜索
bottom↓
回复: 3

IRMP红外发射实现方法

[复制链接]

出0入0汤圆

发表于 2016-8-3 18:10:50 | 显示全部楼层 |阅读模式
本帖最后由 陈正杰 于 2016-8-3 18:10 编辑

红外转发器
发射部分
在上一讲里面,我们实现了对IR红外指令的接收处理方式。这一次我们将实现对IR红外的发射操作。对于红外发射,我们需要了解红外发射的原理。

如图所示,我们可以看到IR红外发射是一个基于时间轴的高低电平跳变,已实现对数据的传输。在红外发射的时序上,我们需要两个定时器来实现。一个用于调制PWM波形,另一个来控制时间。
对于PWM波形,实际可以理解为载波频率。对于不同的红外控制协议,我们需要使用不同的载波频率。所以在你移植相关函数的时候需要注意irsnd_set_freq (IRSND_FREQ_TYPE freq) 这个函数的处理方式。你可以跟踪发现其主要的作用就是将定时器发出的PWM波形修改为需要的载波频率。
在完成载波频率的调制后,我们还需要控制载波频率的启停时间。这两个也是要在移植过程中需要进行修改的函数接口。函数名称如下:
static void irsnd_on (void)
static void irsnd_off (void)
上述两个函数用于实现是否产生载波频率。在完成载波频率的配置后,我们需要使用一个定时器来计量什么时候产生载波频率以及在什么时候关闭载波频率。用于实现IR红外里的0-1输出控制。
对于系统时间的配置,我们使用的一个独立的定时器来实现。在F0中我们使用T6来实现1.5KHz的中断频次来处理(void) irsnd_ISR();                                                     // call irsnd ISR
发送函数。
在移植定时器的时候,建议大家使用逻辑分析来确认是否达到了设定的数值,以便确认相关的操作是否正确。
在本代码的演示中,我们实际输出只是输出了一个NEC协议的控制指令。其输出的波形如下图所示:

对比上下图,我们可以发现数据。

不知道怎么去编辑图片,所以请各位自己下载附件来查看测试。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2016-8-4 07:21:58 | 显示全部楼层
不明白!学习了@!

出0入0汤圆

发表于 2016-8-4 09:38:15 | 显示全部楼层
收下了,谢谢分享

出0入0汤圆

发表于 2017-10-21 19:21:33 | 显示全部楼层
楼主,附件中的PDF文件损坏了打不开。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 08:51

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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