如何用ATmega16A实现输入捕捉以及曼码解码实现?

2019-07-15 16:35发布

新人发帖,可能表达不好,各位前辈别见怪。(真正意义上的新人,新进入这个行业,新学习avr单片机。大学学的51,可我只玩过画板没接触过单片机开发且毕业一年专业基础早忘了)
最近刚入职,老大就给了一个项目,目的是让我接触学习(他也没指望我能完整的搞定吧,我也没那自信)

情况是这样的,我们是做酒店类控制系统的,然后一个方案上要用到别的公司(以下称为丙方)的产品,甲方当然就想我们将丙方产品的控制系统集成在一起啊(其实说白了就是山寨他们的控制模块吧,我是这样理解的)我们有试过联系丙方想要时序图(肯定不给的啦)所以老大就把这事扔给我学习了。

从示波器上看图形是有规律的(老大说很可能是曼码处理过的),然后他打算用m16单片机获取通信过程并做一个解码(这样表达没错吧,我也不是很懂)反正最终目的就是不用丙方的控制面板,将控制程序放在我们自己的面板里面。

我看了几天资料,m16的定时计数器1有输入捕捉的功能(所以我是不是应该往这个方向做)不过我还是有点不明白:我是应该用计数器的普通模式,获取占空比?然后把获得的数据归为0、1即可?(忘了说,丙方的产品用的是单线通讯)
可是这个只是没有任何操作的数据通信的情况吧(以后每个功能都要重新获取一次编码?)还有之后我们也要仿造波形输出吧(定时器1也有这个功能)

表达的有些乱,希望别介意。
恳请各位前辈特别是有这种项目经历的能提供下思路,我不奢求完全的代码什么的,只是要个思路,谢谢。
说实话我现在还是一头雾水,很多都搞不清楚,慢慢成长吧。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
friend0720
2019-07-15 17:09
AndyPeng2015 发表于 2015-7-21 11:39
我认真看了前辈的《第十二节 高级定时器之输入捕获与红外解码》 无奈自己刚接触avr单片机,对代码也不敏感,所以有很多不明白的地方,望前辈不吝赐教。

nec初始化函数中,即代码78,79行

首先谢谢你发现我代码中的错误(笔误) 应该是DDRD
其次当PD6配置为输入后,PORTD=0只能禁止PD6上拉电阻但不能影响PD6端口电平。你老板的意思其实就是使用输入捕获来获取逻辑电平持续时间,然后自己用代码模拟出来。 最佳答案

一周热门 更多>