亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mftphy2500rf.c.bak

?? motorola jw32 usb 源碼
?? BAK
?? 第 1 頁 / 共 2 頁
字號:
    // Write register settings
    //DisableInterrupts;
    halSpiWriteReg(CCxxx0_FSCTRL1,  rfSettings.FSCTRL1);
    halSpiWriteReg(CCxxx0_FSCTRL0,  rfSettings.FSCTRL0);
    halSpiWriteReg(CCxxx0_FREQ2,    rfSettings.FREQ2);
    halSpiWriteReg(CCxxx0_FREQ1,    rfSettings.FREQ1);
    halSpiWriteReg(CCxxx0_FREQ0,    rfSettings.FREQ0);
    halSpiWriteReg(CCxxx0_MDMCFG4,  rfSettings.MDMCFG4);
    halSpiWriteReg(CCxxx0_MDMCFG3,  rfSettings.MDMCFG3);
    halSpiWriteReg(CCxxx0_MDMCFG2,  rfSettings.MDMCFG2);
    halSpiWriteReg(CCxxx0_MDMCFG1,  rfSettings.MDMCFG1);
    halSpiWriteReg(CCxxx0_MDMCFG0,  rfSettings.MDMCFG0);
    halSpiWriteReg(CCxxx0_CHANNR,   rfSettings.CHANNR);
    halSpiWriteReg(CCxxx0_DEVIATN,  rfSettings.DEVIATN);
    halSpiWriteReg(CCxxx0_FREND1,   rfSettings.FREND1);
    halSpiWriteReg(CCxxx0_FREND0,   rfSettings.FREND0);
    halSpiWriteReg(CCxxx0_MCSM0 ,   rfSettings.MCSM0 );
    halSpiWriteReg(CCxxx0_FOCCFG,   rfSettings.FOCCFG);
    halSpiWriteReg(CCxxx0_BSCFG,    rfSettings.BSCFG);
    halSpiWriteReg(CCxxx0_AGCCTRL2, rfSettings.AGCCTRL2);
    halSpiWriteReg(CCxxx0_AGCCTRL0, rfSettings.AGCCTRL0);
    halSpiWriteReg(CCxxx0_FSCAL3,   rfSettings.FSCAL3);
    halSpiWriteReg(CCxxx0_FSCAL2,   rfSettings.FSCAL2);
    halSpiWriteReg(CCxxx0_FSCAL0,   rfSettings.FSCAL0);
    halSpiWriteReg(CCxxx0_FSTEST,   rfSettings.FSTEST);
    halSpiWriteReg(CCxxx0_TEST2,    rfSettings.TEST2);
    halSpiWriteReg(CCxxx0_TEST1,    rfSettings.TEST1);
    halSpiWriteReg(CCxxx0_TEST0,    rfSettings.TEST0);
    halSpiWriteReg(CCxxx0_IOCFG2,   rfSettings.IOCFG2);
    halSpiWriteReg(CCxxx0_IOCFG0,   rfSettings.IOCFG0);
    halSpiWriteReg(CCxxx0_PKTCTRL1, rfSettings.PKTCTRL1);
    halSpiWriteReg(CCxxx0_PKTCTRL0, rfSettings.PKTCTRL0);
    halSpiWriteReg(CCxxx0_ADDR,     rfSettings.ADDR);
    halSpiWriteReg(CCxxx0_PKTLEN,   rfSettings.PKTLEN);
    //EnableInterrupts;
}// halRfWriteRfSettings
//-------------------------------------------------------------------------------------------------------
//  BYTE halSpiReadReg(BYTE addr)
//
//  DESCRIPTION:
//      This function gets the value of a single specified CCxxx0 register.
//
//  ARGUMENTS:
//      BYTE addr
//          Address of the CCxxx0 register to be accessed.
//
//  RETURN VALUE:
//      BYTE
//          Value of the accessed CCxxx0 register.
//-------------------------------------------------------------------------------------------------------
BYTE halSpiReadReg(BYTE addr) {
    BYTE x;
   // SPI0CFG   = 0x40;       //CKPHA=0  CKPOL=0
    CC2500_NCS = 0;
    while (CC2500_MISO)
    {
    	 ;//__RESET_WATCHDOG();
    }
    SPI0DAT = (addr | READ_SINGLE);
    SPI_WAIT();
    //SPI0DAT = 0;
    //SPI_WAIT();
    x =SPIGet();
    CC2500_NCS = 1;
  //  SPI0CFG   = 0x70;       //CKPHA=1  CKPOL=1
    return x;
}// halSpiReadReg
//-------------------------------------------------------------------------------------------------------
//  void halSpiWriteBurstReg(BYTE addr, BYTE *buffer, BYTE count)
//
//  DESCRIPTION:
//      This function writes to multiple CCxxx0 register, using SPI burst access.
//
//  ARGUMENTS:
//      BYTE addr
//          Address of the first CCxxx0 register to be accessed.
//      BYTE *buffer
//          Array of bytes to be written into a corresponding range of
//          CCxx00 registers, starting by the address specified in _addr_.
//      BYTE count
//          Number of bytes to be written to the subsequent CCxxx0 registers.
//-------------------------------------------------------------------------------------------------------
void halSpiWriteBurstReg(BYTE addr,BYTE * buffer, BYTE count) {
    unsigned char i;
    //SPI0CFG   = 0x40;       //CKPHA=0  CKPOL=0

    CC2500_NCS = 0;

    while (CC2500_MISO)
    {
    	;//__RESET_WATCHDOG();

    }
    SPI0DAT = addr | WRITE_BURST;
    SPI_WAIT();
    for (i = 0; i < count; i++) {
        SPI0DAT = buffer[i];
        SPI_WAIT();
    }
    CC2500_NCS = 1;
//    SPI0CFG   = 0x70;       //CKPHA=1  CKPOL=1
}// halSpiWriteBurstReg

//-------------------------------------------------------------------------------------------------------
//  void halSpiStrobe(BYTE strobe)
//
//  DESCRIPTION:
//      Function for writing a strobe command to the CCxxx0
//
//  ARGUMENTS:
//      BYTE strobe
//          Strobe command
//-------------------------------------------------------------------------------------------------------
void halSpiStrobe(BYTE strobe) {
   // SPI0CFG   = 0x40;       //CKPHA=0  CKPOL=0
    CC2500_NCS = 0;
    while (CC2500_MISO)
    {
    	; //__RESET_WATCHDOG();
    }

    //------------------------------------
    /*while (GDO0_PIN)
    {
    	 __RESET_WATCHDOG();
    }*/
    SPI0DAT = strobe;
    SPI_WAIT();
    CC2500_NCS = 1;
    //halWait(20);
  //  SPI0CFG   = 0x70;       //CKPHA=1  CKPOL=1
}// halSpiStrobe

//-------------------------------------------------------------------------------------------------------
//  void halRfSendPacket(BYTE *txBuffer, UINT8 size)
//
//  DESCRIPTION:
//      This function can be used to transmit a packet with packet length up to 63 bytes.
//      To use this function, GD00 must be configured to be asserted when sync word is sent and
//      de-asserted at the end of the packet => halSpiWriteReg(CCxxx0_IOCFG0, 0x06);
//      The function implements polling of GDO0. First it waits for GD00 to be set and then it waits
//      for it to be cleared.
//
//  ARGUMENTS:
//      BYTE *txBuffer
//          Pointer to a buffer containing the data that are going to be transmitted
//
//      UINT8 size
//          The size of the txBuffer
//-------------------------------------------------------------------------------------------------------
void halRfSendPacket(unsigned char *txBuffer,unsigned char size) {

    halSpiWriteBurstReg(CCxxx0_TXFIFO, txBuffer, size);

    halSpiStrobe(CCxxx0_STX);
}// halRfSendPacket

//-------------------------------------------------------------------------------------------------------
//  BYTE halSpiReadStatus(BYTE addr)
//
//  DESCRIPTION:
//      This function reads a CCxxx0 status register.
//
//  ARGUMENTS:
//      BYTE addr
//          Address of the CCxxx0 status register to be accessed.
//
//  RETURN VALUE:
//      BYTE
//          Value of the accessed CCxxx0 status register.
//-------------------------------------------------------------------------------------------------------
BYTE halSpiReadStatus(BYTE addr) {
    BYTE x;
  //  SPI0CFG   = 0x40;       //CKPHA=0  CKPOL=0
    CC2500_NCS = 0;
    while (CC2500_MISO)
    {
    	; //__RESET_WATCHDOG();
    }
    SPI0DAT = (addr | READ_BURST);
    SPI_WAIT();
    //SPI0DAT = 0;
    //SPI_WAIT();
    x = SPIGet();
    CC2500_NCS = 1;
   // SPI0CFG   = 0x70;       //CKPHA=1  CKPOL=1
    return x;
}// halSpiReadStatus



//-------------------------------------------------------------------------------------------------------
//  void halSpiReadBurstReg(BYTE addr, BYTE *buffer, BYTE count)
//
//  DESCRIPTION:
//      This function reads multiple CCxxx0 register, using SPI burst access.
//
//  ARGUMENTS:
//      BYTE addr
//          Address of the first CCxxx0 register to be accessed.
//      BYTE *buffer
//          Pointer to a byte array which stores the values read from a
//          corresponding range of CCxxx0 registers.
//      BYTE count
//          Number of bytes to be written to the subsequent CCxxx0 registers.
//-------------------------------------------------------------------------------------------------------
void halSpiReadBurstReg(BYTE addr, BYTE *buffer, BYTE count) {
    BYTE i;
  //  SPI0CFG   = 0x40;       //CKPHA=0  CKPOL=0
    CC2500_NCS = 0;
    while (CC2500_MISO)
    {
    	 ;//__RESET_WATCHDOG();
    }
    SPI0DAT = (addr | READ_BURST);
    SPI_WAIT();
    for (i = 0; i < count; i++) {
        //SPI0DAT = 0;
        //SPI_WAIT();
        buffer[i] = SPIGet();
    }
    CC2500_NCS = 1;
   // SPI0CFG   = 0x70;       //CKPHA=1  CKPOL=1
}// halSpiReadBurstReg

//-------------------------------------------------------------------------------------------------------
//  Bool halRfReceivePacket(BYTE *rxBuffer, UINT8 *length)
//
//  DESCRIPTION:
//      This function can be used to receive a packet of variable packet length (first byte in the packet
//      must be the length byte). The packet length should not exceed the RX FIFO size.
//      To use this function, GD00 must be configured to be asserted when sync word is sent and
//      de-asserted at the end of the packet => halSpiWriteReg(CCxxx0_IOCFG0, 0x06);
//      Also, APPEND_STATUS in the PKTCTRL1 register must be enabled.
//      The function implements polling of GDO0. First it waits for GD00 to be set and then it waits
//      for it to be cleared.
//      After the GDO0 pin has been de-asserted, the RXBYTES register is read to make sure that there
//      are bytes in the FIFO. This is because the GDO signal will indicate sync received even if the
//      FIFO is flushed due to address filtering, CRC filtering, or packet length filtering.
//
//  ARGUMENTS:
//      BYTE *rxBuffer
//          Pointer to the buffer where the incoming data should be stored
//      UINT8 *length
//          Pointer to a variable containing the size of the buffer where the incoming data should be
//          stored. After this function returns, that variable holds the packet length.
//
//  RETURN VALUE:
//      Bool
//          TRUE:   CRC OK
//          FALSE:  CRC NOT OK
//-------------------------------------------------------------------------------------------------------
uchar halRfReceivePacket(uchar *rxBuffer, uchar *rssi) {
   uchar   packetLength,bufferlength;
    bufferlength = halSpiReadStatus(CCxxx0_RXBYTES);
   if (bufferlength& BYTES_IN_RXFIFO) {
   	  		packetLength = halSpiReadReg(CCxxx0_RXFIFO);
           if(packetLength>2&&packetLength<PHYDATALEN)
           {
            halSpiReadBurstReg(CCxxx0_RXFIFO, rxBuffer,packetLength+2);
            // Read the 2 appended status bytes (status[0] = RSSI, status[1] = LQI)
				   	if(rxBuffer[packetLength+1]&CRC_OK)
				  	 {
				   			*rssi=rxBuffer[packetLength];
				   			halSpiStrobe(CCxxx0_SFRX);
					   		return (packetLength);
					  }
					}
	}
	halSpiStrobe(CCxxx0_SFRX);
	return FALSE;
}// halRfReceivePacketet
void CC2500_init()
{
    unsigned char * pbuffer;
    delayms(50);//power up
    POWER_UP_RESET_CCxxx0();
    halRfWriteRfSettings();//寫入配置寄存器
    halSpiWriteReg(CCxxx0_MCSM1,0x03);//發(fā)送完成轉接收
    pbuffer = (unsigned char *)paTable;
    halSpiWriteBurstReg(CCxxx0_PATABLE, pbuffer, sizeof(paTable));
   // if(halSpiReadStatus(0x30)==0x80)
   //  ; //       TEST_1=0;
}
/*
void CC2500_channel()
{
    halSpiStrobe(CCxxx0_SIDLE);
    halSpiWriteReg(CCxxx0_CHANNR,channel);
}*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
粉嫩av一区二区三区在线播放| 91视频在线看| 天堂在线一区二区| 午夜精品一区二区三区三上悠亚| 亚洲精品高清视频在线观看| 亚洲图片激情小说| 亚洲色图在线看| 亚洲人吸女人奶水| 一区二区三区精品视频| 亚洲一区二区三区在线看| 国产一区二区三区免费| 久久疯狂做爰流白浆xx| 麻豆精品一区二区三区| 久久国内精品视频| 国产一区二区三区黄视频 | 亚洲国产精品成人久久综合一区 | 日韩激情中文字幕| 青娱乐精品视频| 国内一区二区视频| 国产69精品久久777的优势| 成人精品一区二区三区四区 | 99国产精品久久久久久久久久| 成人av网址在线| 91豆麻精品91久久久久久| 欧美日韩亚州综合| 日韩欧美国产三级| 国产日本欧美一区二区| 久久亚区不卡日本| 国产精品美女久久久久久久网站| 亚洲欧洲99久久| 亚洲成av人**亚洲成av**| 麻豆精品在线播放| 成人免费视频网站在线观看| 欧美中文字幕一区二区三区亚洲| 91.xcao| 日韩欧美成人激情| 国产精品久久久久久一区二区三区| 亚洲男女毛片无遮挡| 日韩中文字幕91| 国产成人在线视频网址| 色偷偷一区二区三区| 日韩一区二区三区高清免费看看 | 亚洲欧美色综合| 免费成人美女在线观看.| 国产宾馆实践打屁股91| 欧美视频一区在线观看| 久久一区二区视频| 亚洲综合久久av| 国产精品资源站在线| 一本大道久久a久久精品综合| 欧美一区二区免费| 一区在线播放视频| 亚洲国产欧美另类丝袜| 日韩和的一区二区| 国产成人综合亚洲91猫咪| 欧美日本一道本| 中文字幕 久热精品 视频在线| 亚洲国产成人精品视频| 成人免费视频视频| 日韩天堂在线观看| 亚洲精品精品亚洲| 国产一区二区三区四区五区入口| 欧日韩精品视频| 国产婷婷一区二区| 日本午夜精品一区二区三区电影| 99久久久精品| 精品久久久久一区二区国产| 亚洲精品成人悠悠色影视| 国产美女娇喘av呻吟久久| 7878成人国产在线观看| 亚洲免费在线观看| 成人精品一区二区三区中文字幕| 亚洲色图欧洲色图婷婷| 国产综合久久久久影院| 欧美日本视频在线| 一级日本不卡的影视| 成人免费毛片aaaaa**| 欧美va在线播放| 日韩精品一级中文字幕精品视频免费观看 | 99久精品国产| 国产欧美日韩亚州综合| 久久99久久久久| 欧美高清性hdvideosex| 亚洲在线一区二区三区| 99re亚洲国产精品| 中文字幕第一区| 国产成a人亚洲| 国产日韩欧美亚洲| 国产乱码一区二区三区| 精品噜噜噜噜久久久久久久久试看| 性久久久久久久久久久久| 色屁屁一区二区| 亚洲欧美另类综合偷拍| 91视频在线观看免费| 中文字幕制服丝袜一区二区三区| 国产一区二区三区四| 欧美大肚乱孕交hd孕妇| 日韩二区三区在线观看| 在线不卡a资源高清| 视频一区二区国产| 欧美久久一二区| 青青草一区二区三区| 日韩欧美美女一区二区三区| 蜜臀99久久精品久久久久久软件 | 亚洲国产乱码最新视频| 欧美午夜精品久久久久久孕妇 | 91国产丝袜在线播放| 一区二区三区视频在线看| 91年精品国产| 亚洲激情成人在线| 欧美日韩色综合| 青草国产精品久久久久久| 欧美大胆一级视频| 国产成人精品免费视频网站| 国产精品久久久久久久蜜臀 | 国产精品网友自拍| 北条麻妃一区二区三区| 中文字幕亚洲区| 色吧成人激情小说| 亚洲成精国产精品女| 欧美一级在线免费| 国产一区免费电影| 国产精品久久三区| 色狠狠一区二区| 日韩高清不卡一区二区| 精品三级在线看| 成人性生交大片免费看中文网站| 成人免费小视频| 欧美日韩国产免费一区二区| 理论电影国产精品| 国产午夜精品久久久久久免费视| 99精品国产热久久91蜜凸| 一区二区三区日本| 欧美一区二区视频网站| 国产一区二三区好的| 亚洲色图欧洲色图婷婷| 欧美一二三区在线观看| 国产激情一区二区三区| 一区二区免费在线| 精品入口麻豆88视频| www.亚洲免费av| 丝袜亚洲另类欧美| 国产视频一区二区三区在线观看| 色激情天天射综合网| 久久99在线观看| 亚洲激情五月婷婷| 精品国产免费人成在线观看| 99精品视频免费在线观看| 日韩在线观看一区二区| 欧美激情一区二区三区不卡| 欧美亚洲一区二区在线| 国产麻豆91精品| 亚洲综合视频在线| wwwwxxxxx欧美| 精品视频资源站| 福利视频网站一区二区三区| 亚洲成人资源在线| 中文无字幕一区二区三区| 欧美高清你懂得| 99国内精品久久| 另类成人小视频在线| 有码一区二区三区| 久久精品亚洲国产奇米99| 欧美日韩亚洲综合在线| 福利电影一区二区| 日本伊人色综合网| 亚洲色图一区二区| wwwwww.欧美系列| 欧美精品自拍偷拍| 97aⅴ精品视频一二三区| 国产一级精品在线| 强制捆绑调教一区二区| 亚洲自拍偷拍av| 亚洲同性gay激情无套| 久久久美女艺术照精彩视频福利播放 | 欧美性受xxxx黑人xyx| 成人综合在线观看| 久久99精品国产麻豆婷婷| 亚洲国产精品久久人人爱| 国产精品成人免费在线| 久久久久久久久99精品| 51精品久久久久久久蜜臀| 日本久久精品电影| 91精品国产一区二区三区| 色成年激情久久综合| av资源网一区| 国产成人综合亚洲91猫咪| 久久国产婷婷国产香蕉| 视频一区二区三区在线| 夜夜揉揉日日人人青青一国产精品| 欧美精彩视频一区二区三区| 久久综合一区二区| 日韩你懂的在线播放| 欧美一区二区三区免费观看视频| 欧洲av一区二区嗯嗯嗯啊| 91在线视频18| 一本在线高清不卡dvd| 97精品国产97久久久久久久久久久久| 国产成人鲁色资源国产91色综| 国产美女av一区二区三区|