CC2430通过中断来接收无线射频数据

1、 通过在RFD中读取数据和存放数据,我们可以实现无线通信。

  •     TXFIFO和RXFIFO可以通过SFR寄存器RFD(0xD9)进行存取。 
  •     写寄存器RFD就是写TXFIFO,读寄存器RFD就是读RXFIFO。 

 RF寄存器位RFSTATUS.FIFO和RFSTATUS.FIFOP提供了接收FIFO里的数据信。注意,RFSTATUS.FIFO和RFSTATUS.FIFOP仅仅用于RXFIFO。 

 

 

2、接收模式 

 接接收收模模式式 

 

    在接收模式中,当帧开始定界符(SFD)域全部收到之后,中断标志RFIF.IRQ_SFD 置1,而且发出RF中断请求。如果地址识别已经禁止或者已经获得成功,则RFSTATUS.SFD 位只有在MPDU的最后一个字节被接收到之后才再次清0。如果接收到的帧地址识别失败, 

则RFSTATUS.SFD位立即清0。 

    当RXFIFO中有数据时,RFSTATUS.FIFO置1。存放在RXFIFO中的第一个字节是 收到的帧长度域,也就是说,当长度域写入RXFIFO时,RFSTATUS.FIFO置1。在RXFIFO 变空之前,RFSTATUS.FIFO一直置高。RF寄存器RXFIFOCNT存放当前RXFIFO中的字 

节的数量。 

    当RXFIFO中未读过的字节超过编程设置在IOCFG0.FIFOP_THR中的阈值时, RFSTATUS.FIFOP置1

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
)EV1527中断法解码 ① 设定定时器中断时间,设定为 80us,80us 进入中断进行解码。具体中断时间多少由自己 软件设定,但是中断时间不能太大。 ② 设定同步码解码范围,同步码定为 5.6ms - 16ms。进入中断判断到低电平,低电平判断 一直累加 Count_Lead++,累积低电平的采集时间,判断到高电平,就判断此时 Count_Lead 的值是否在 70 跟 200之间。(备注:5.6ms/80us=70 16ms/80us=200)。 ③ 引导头通过进入数据判断,刚开始是数据高电平,累积高电平的时间 Count_Data_Hi++, 当判断到低电平时候,判断 Count_Data_Hi 是否在 80us -2.4ms 之间。这里还没进行数据 0 跟 1 的区分,先把 Count_Data_Hi 的值保存在 Hi_Cnt 里面。 (备注:80us/80us=1 2.4ms/80us=30)。 ④ 高电平判断通过,开始判断低电平,累积低电平的时间 Count_Data_lo++,当判断到高电 平时候,判断 Count_Data_Lo 是否在 80us -2.4ms 之间。这里还没进行数据 0 跟 1 的区分, 先把 Count_Data_Lo 的值保存在 Lo_Cnt 里面。 (备注:80us/80us=1 2.4ms/80us=30)。 ⑤ 对 0 跟 1 进行区分,把 24bit 数据整理成三个 byte,存在数组 RfData[0],RfData[1], RfData[2]数组里面。 ⑥ 进行相应功能码的操作。 具体解码方法参考例子程序,因为不同的震荡电阻,1527 出来的编码长度不同,例子 程序是参考 1 lck=100us 波形来做的。具体时间参数可以根据自己的 1527 发射实际长度来 编写。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值