这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » nRF9E5 请问各位大侠一个nRF9E5的问题!

共2条 1/1 1 跳转至

nRF9E5 请问各位大侠一个nRF9E5的问题!

院士
2006-09-17 18:14:16     打赏
nRF9E5 请问各位大侠一个nRF9E5的问题!



关键词: nRF9E5     请问     各位     大侠     一个     问题    

院士
2006-12-22 22:43:00     打赏
2楼
问       第一,spi的访问寄存器的指令应该是通过spi_data寄存器进行访问的。但是程序中
RACSN=0;
SPIREADWRITE(RRC|0X09);
TMP=SPIREADWRITE(0)&0X0C;
RACSN=1;
在第二句的子程序中有一个将SPI_DATA返回的语句,那么就是说读取RF CONFIG REGISTER的地址9这条指令输入后有一个返回值(这个只是不是应该就是地址9的内容)。可是程序的第三句中显示SPIREADWRITE(0)的返回值才是地址9的内容。请您帮我解答。
      第二,在程序开始有一句
define CHANNEL  351
并且在INIT设置中有
SpiReadWrite(WRC);              // Write RF config address 0
SpiReadWrite(CHANNEL & 0xff);   // CHANNEL bit7..0
SpiReadWrite(tmp | (POWER<<2) | (HFREQ << 1) | ((CHANNEL >> 8) & 0x01));
这应该表示CHANNEL & 0xff是写入RF config第0个字节,即CH_NO7-0.
如果CHANNEL作为CH_NO的低八位,那么把它设置成351(15FH)岂不是超过了8位二进制码?这么设的理由是什么,f(MHz) = (422.4+CHANNEL/10)*(1+HFREQ)这个公式来源于哪里,请您解答。
      第三,在上一个问题的第三句中,tmp | (POWER<<2) | (HFREQ << 1) | ((CHANNEL >> 8) & 0x01)是写入RF CONFIG地址1的内容,那么tmp | (POWER<<2) | (HFREQ << 1) | ((CHANNEL >> 8) & 0x01)代表什么呢?
      第四,在程序段
RACSN = 0;
    SpiReadWrite(RRC | 0x09);
//    tmp = SpiReadWrite(0) | 0x04;
    tmp = SpiReadWrite(0) | 0x0C;
    RACSN = 1;

    RACSN = 0;
    SpiReadWrite(WRC | 0x09);
    SpiReadWrite(tmp);
    RACSN = 1;

    // Configure Radio:
    RACSN = 0;
    SpiReadWrite(WRC | 0x03);       // Write to RF config address 3 (RX payload)
    SpiReadWrite(0x01);             // One byte RX payload
    SpiReadWrite(0x01);             // One byte TX payload
    RACSN = 1;

    RACSN = 0;
    SpiReadWrite(RRC | 0x01);       // Read RF config address 1
    tmp = SpiReadWrite(0) & 0xf0;   // Clear the power and frequency setting bits
    RACSN = 1;

    RACSN = 0;
    SpiReadWrite(WRC);              // Write RF config address 0
    SpiReadWrite(CHANNEL & 0xff);   // CHANNEL bit7..0
    // Change power defined by POWER above, to 433 or 868/915MHz defined by HFREQ and
    // bit8 of CHANNEL:
    SpiReadWrite(tmp | (POWER<<2) | (HFREQ << 1) | ((CHANNEL >> 8) & 0x01));
    
    SpiReadWrite(0x44);          //2004.11.13
    SpiReadWrite(0x01);             // One byte RX payload
    SpiReadWrite(0x01);             // One byte TX payload
    SpiReadWrite(0xE7);
    SpiReadWrite(0xE7);
    SpiReadWrite(0xE7);
    SpiReadWrite(0xE7);
    
    RACSN = 1;
为什么上面已经设置过地址2,3而下面又重新设置了呢? 1: 好象天津weilei再搞

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]