曼彻斯特编码的接收

上传人:hs****ma 文档编号:489111361 上传时间:2022-10-15 格式:DOC 页数:4 大小:29KB
返回 下载 相关 举报
曼彻斯特编码的接收_第1页
第1页 / 共4页
曼彻斯特编码的接收_第2页
第2页 / 共4页
曼彻斯特编码的接收_第3页
第3页 / 共4页
曼彻斯特编码的接收_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《曼彻斯特编码的接收》由会员分享,可在线阅读,更多相关《曼彻斯特编码的接收(4页珍藏版)》请在金锄头文库上搜索。

1、曼彻斯特编码的接收曼彻斯特编码的接收这几天没事弄了一个曼彻斯特编码方式的接收程序,给大家分享:rxi() / this routine gets called every time TMR0 overflows if(T0IF)/定时器中断程序 TMR0 = PERIOD; / 装计时器初值 T0IF = 0; / 清定时器溢出标志 XTMR+; / 外部的系统时钟计时器加1 RFcount+; / 脉冲宽度计数器加1return; if(RAIF)/端口电平变化中断程序 if (RFFull) / 如果接收位满就退出 return;RFBit = RFIn; / 取样信号接收的值RAIF =

2、 0; switch (RFstate) / 当前状态 case TRFDATAUP: switch (RFcount) case 4: case 5: case 6: case 7: PORTA = PORTA;/启动端口电平中断 break; case 8: case 9: case 10: case 11: case 12: BBptr = 1; / rotate if ( RFBit=0)/如是有效的下跳变则该位的数据值为1,上跳变为0 BBptr+=1; / shift in bit if ( ( +BitCount & 7) = 0) Bptr+; / advance one by

3、te if (BitCount = NBIT) RFstate = TRFreset; / finished receiving RFFull = 1; RFcount=0; /重新记时 PORTA = PORTA;/启动端口电平中断 break; default:/超时或不足则退出接收 RFstate = TRFSYNC; / reset state machine in all other cases RFcount = 0; Bptr = 0; BitCount = 0; PORTA = PORTA;/启动端口电平中断 break; case TRFSYNC: if ( RFBit) /

4、 rising edge detected+-+ +-. / | | | / +-+ if ( ( RFcount = LONG_HEAD) RFstate = TRFreset; PORTA = PORTA;/启动端口电平中断 break; / too short/long, no header else RFcount =0; / restart counter RFstate= TRFDATAUP; PORTA = PORTA;/启动端口电平中断 else / still low RFcount=0; PORTA = PORTA;/启动端口电平中断 break; case TRFrese

5、t: default: RFstate = TRFSYNC; / reset state machine in all other cases RFcount = 0; Bptr = 0; BitCount = 0; PORTA = PORTA;/启动端口电平中断 break; / switch /电平中断 / rxi void InitReceiver()IOCA = 2; T0IF = 0; T0IE = 1; / TMR0 overflow interruptRAIE = 1; /使能端口电平变化中断 GIE = 1; / enable interrupts RFstate = TRFreset; / reset state machine in all other cases RFFull = 0; / start with buffer empty XTMR = 0; / start extended timer TMR0 = PERIOD; / 装计时器初值 PORTA = PORTA;/启动端口电平中断

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号