EDN首页   博客首页

日志档案

发表于 2007-6-22 11:07:23

1

标签: 中断  脉冲宽度  

无线遥控的曼彻斯特编码的接收(续)

补充:编程思想

 

总的指导思想:利用中断来为数据的高低电平计数。

1         计时中断的时间是270us。我的脉冲宽度为300us,则在一个高(低)电平中能且只能产生一次计时中断,即计数1次。Rfcount等于1

2         如果2个数据不同时,就会出现2个连续的高电平或低电平,即600us的高电平或低电平。但在这600us中能且只能产生2次计时中断,即计数2次。Rfcount等于2

3         理论上如果中断时间是270us时,可以对脉冲宽度为271404us的数据作出正确接收。因为只要能保证1个电平宽度大于1个中断时间和2个连续的电平宽度小于3个中断时间(3*270810us)时即可。

4         在电平变化中断后重赋定时器初值是为了抵消时间的累积误差。

以图为例进行说明:

点击看大图

⑴ 在a处产生中断,“预备……”;

⑵ 在b处产生中断,“准备就绪”;

⑶ 在c处产生中断,“检查同步头中低电平宽度是否合法。OK,则准备进入数据接收;否则仍就“预备……””;

⑷ ●在d处(图上)或e处(图下)产生中断,则判断是否产生了2次计时中断。很显然,对于图上只能产生1次计时中断,而图下就产生2次计时中断。产生了2次计时中断时,对数据进行判断,对于图下就能判断数据为1。对于图上,由于不足2次计时中断,所以直接退出中断。等待下一次中断(图上e处)。

     图上在e处产生中断,很明显,计时中断数为2,对数据进行判断,为0

⑸ 对数据进行判断后即清计时中断计数器。即Rfcount。为下一个数据接收作准备。返回到步骤⑷。如此反复,即可对所有的数据作出完整接收!

⑹ 由于以上接收时间为基准的,即Rfcount2次计时中断。所以数据中的高电平和低电平都有计时,其中任何1个的宽度超限都能导致接收失败。

 

系统分类: 单片机   |   用户分类: 无分类   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(1151)    回复(0)  

投一票您将和博主都有获奖机会!