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

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

?? cc1100-cc2500.c

?? MSP430F2274單片機和CC2500的無線通信程序
?? C
?? 第 1 頁 / 共 3 頁
字號:
    TI_CC_SPIWriteReg(TI_CCxxx0_FSTEST,   0x59); // Frequency synthesizer cal.
    TI_CC_SPIWriteReg(TI_CCxxx0_TEST2,    0x88); // Various test settings.
    TI_CC_SPIWriteReg(TI_CCxxx0_TEST1,    0x31); // Various test settings.
    TI_CC_SPIWriteReg(TI_CCxxx0_TEST0,    0x0B);  // Various test settings.
}

// PATABLE (0 dBm output power)
extern char paTable[] = {0xFB};
extern char paTableLen = 1;

#endif

#if TI_CC_RF_FREQ == 2401                         // 2.4GHz
// Product = CC2500
// Crystal accuracy = 40 ppm
// X-tal frequency = 26 MHz
// RF output power = 0 dBm
// RX filterbandwidth = 540.000000 kHz
// Deviation = 0.000000
// Return state:  Return to RX state upon leaving either TX or RX
// Datarate = 250.000000 kbps
// Modulation = (7) MSK
// Manchester enable = (0) Manchester disabled
// RF Frequency = 2400.500000 MHz
// Channel spacing = 199.950000 kHz
// Channel number = 0
// Optimization = Sensitivity
// Sync mode = (3) 30/32 sync word bits detected
// Format of RX/TX data = (0) Normal mode, use FIFOs for RX and TX
// CRC operation = (1) CRC calculation in TX and CRC check in RX enabled
// Forward Error Correction = (1) FEC enabled  ??
// Length configuration = (1) Variable length packets, packet length configured by the first received byte after sync word.
// Packetlength = 255
// Preamble count = (2)  4 bytes
// Append status = 1
// Address check = (0) No address check
// FIFO autoflush = 0
// Device address = 0
// GDO0 signal selection = (06) Asserts when sync word has been sent / received, and de-asserts at the end of the packet
// GDO2 signal selection = (09) Clear Channel Assessment  ??
void writeRFSettings(void)
{
    // Write register settings
    TI_CC_SPIWriteReg(TI_CCxxx0_IOCFG2,   0x09);  // GDO2 output pin config.
    TI_CC_SPIWriteReg(TI_CCxxx0_IOCFG0,   0x06);  // GDO0 output pin config.
    TI_CC_SPIWriteReg(TI_CCxxx0_PKTLEN,   0x08);  // Packet length.??
    TI_CC_SPIWriteReg(TI_CCxxx0_PKTCTRL1, 0x04);  // Packet automation control.
    TI_CC_SPIWriteReg(TI_CCxxx0_PKTCTRL0, 0x05);  // Packet automation control.
    TI_CC_SPIWriteReg(TI_CCxxx0_ADDR,     0x02);  // Device address.
    TI_CC_SPIWriteReg(TI_CCxxx0_CHANNR,   0x00); // Channel number.
    TI_CC_SPIWriteReg(TI_CCxxx0_FSCTRL1,  0x12); // Freq synthesizer control.??
    TI_CC_SPIWriteReg(TI_CCxxx0_FSCTRL0,  0x00); // Freq synthesizer control.
    TI_CC_SPIWriteReg(TI_CCxxx0_FREQ2,    0x5C); // Freq control word, high byte??
    TI_CC_SPIWriteReg(TI_CCxxx0_FREQ1,    0x53); // Freq control word, mid byte.??
    TI_CC_SPIWriteReg(TI_CCxxx0_FREQ0,    0xB1); // Freq control word, low byte.
    TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG4,  0x2D); // Modem configuration.
    TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG3,  0x3B); // Modem configuration.
    TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG2,  0xF3); // Modem configuration.??
    TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG1,  0xB2); // Modem configuration.??
    TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG0,  0xF8); // Modem configuration.
    TI_CC_SPIWriteReg(TI_CCxxx0_DEVIATN,  0x00); // Modem dev (when FSK mod en)
#ifdef _SWOR
    // Set Event0 timeout = 300 ms (RX polling interval)
    // WOR_RES = 0
    // T_event0 = 750 / f_xosc * EVENT0 * 2^(5*WOR_RES) = 300 ms    // Assuming f_xosc = 26 MHz
    // =>  EVENT0 = 10400 = 0x28A0
    TI_CC_SPIWriteReg(TI_CCxxx0_WOREVT1,  0x28); // WOR High byte Event Timeout.
    TI_CC_SPIWriteReg(TI_CCxxx0_WOREVT0,  0xA0); // WOR Low byte Event Timeout.
    // Enable automatic initial calibration of RCosc.
    // Set T_event1 ~ 345 us, enough for XOSC stabilize before starting calibration.
    // Enable RC oscillator before starting with WOR (or else it will not wake up).
    // Not using AUTO_SYNC function.
    TI_CC_SPIWriteReg(TI_CCxxx0_WORCTRL,  0x38); // WOR control
    // Setting Rx_timeout < 0.5 %.
    // => MCSM2.RX_TIME = 101b
    // => Rx_timeout = (EVENT0 * 0.1127) = (10400 * 0.1127) =  1.172 ms, i.e.  0.391% RX duty cycle
    // => MCSM2.RX_TIME = 000b
    // => Rx_timeout = (EVENT0 * 3.6029) = (10400 * 3.6029) = 37.471 ms, i.e. 12.500% RX duty cycle
    TI_CC_SPIWriteReg(TI_CCxxx0_MCSM2,    0x00); // MainRadio Cntrl State Machine
#endif /* _SWOR */
    // RXOFF_MODE=01b (RX->FSTXON: 9.6 us), TXOFF_MODE=00b (TX->IDLE, no FS calib: 0.1 us).
    TI_CC_SPIWriteReg(TI_CCxxx0_MCSM1,    0x34); // MainRadio Cntrl State Machine??
    TI_CC_SPIWriteReg(TI_CCxxx0_MCSM0,    0x18); // MainRadio Cntrl State Machine
    TI_CC_SPIWriteReg(TI_CCxxx0_FOCCFG,   0x1D); // Freq Offset Compens. Config
    TI_CC_SPIWriteReg(TI_CCxxx0_BSCFG,    0x1C); // Bit synchronization config.
    TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL2, 0xC7); // AGC control.
    TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL1, 0x00); // AGC control.
    TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL0, 0xB2); // AGC control.
    TI_CC_SPIWriteReg(TI_CCxxx0_FREND1,   0xB6); // Front end RX configuration.
    TI_CC_SPIWriteReg(TI_CCxxx0_FREND0,   0x10); // Front end RX configuration.
    TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL3,   0xEA); // Frequency synthesizer cal.
    TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL2,   0x0A); // Frequency synthesizer cal.
    TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL1,   0x00); // Frequency synthesizer cal.
    TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL0,   0x11); // Frequency synthesizer cal.
    TI_CC_SPIWriteReg(TI_CCxxx0_FSTEST,   0x59); // Frequency synthesizer cal.
    TI_CC_SPIWriteReg(TI_CCxxx0_TEST2,    0x88); // Various test settings.
    TI_CC_SPIWriteReg(TI_CCxxx0_TEST1,    0x31); // Various test settings.
    TI_CC_SPIWriteReg(TI_CCxxx0_TEST0,    0x0B); // Various test settings.
}

// PATABLE (0 dBm output power)
extern char paTable[] = {0xFB};
extern char paTableLen = 1;

#endif

//-----------------------------------------------------------------------------
//  void RFSendPacket(char *txBuffer, char size)
//
//  DESCRIPTION:
//  This function transmits a packet with 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, which is accomplished by setting the
//  IOCFG0 register to 0x06, per the CCxxxx datasheet.  GDO0 goes high at
//  packet start and returns low when complete.  The function polls GDO0 to
//  ensure packet completion before returning.
//
//  ARGUMENTS:
//      char *txBuffer
//          Pointer to a buffer containing the data to be transmitted
//
//      char size
//          The size of the txBuffer
//-----------------------------------------------------------------------------
void RFSendPacket(char *txBuffer, char size)//先將數據寫入buffer,再發送數據,數據最長為63個字節
{
    TI_CC_SPIStrobe(TI_CCxxx0_SIDLE);
    TI_CC_SPIWriteBurstReg(TI_CCxxx0_TXFIFO, txBuffer, size); // Write TX data
    TI_CC_SPIStrobe(TI_CCxxx0_STX);         // Change state to TX, initiating
                                            // data transfer

    while (!(TI_CC_GDO0_PxIN&TI_CC_GDO0_PIN));
                                            // Wait GDO0 to go hi -> sync TX'ed
    while (TI_CC_GDO0_PxIN&TI_CC_GDO0_PIN);
                                            // Wait GDO0 to clear -> end of pkt
    TI_CC_SPIStrobe(TI_CCxxx0_SFTX);        ////沖刷緩沖器清零
    
}



//-----------------------------------------------------------------------------
//  char RFReceivePacket(char *rxBuffer, char *length)
//
//  DESCRIPTION:
//  Receives a packet of variable length (first byte in the packet must be the
//  length byte).  The packet length should not exceed the RXFIFO size.  To use
//  this function, APPEND_STATUS in the PKTCTRL1 register must be enabled.  It
//  is assumed that the function is called after it is known that a packet has
//  been received; for example, in response to GDO0 going low when it is
//  configured to output packet reception status.
//
//  The RXBYTES register is first read to ensure there are bytes in the FIFO.
//  This is done because the GDO signal will go high even if the FIFO is flushed
//  due to address filtering, CRC filtering, or packet length filtering.
//
//  ARGUMENTS:
//      char *rxBuffer
//          Pointer to the buffer where the incoming data should be stored
//      char *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:
//      char
//          0x80:  CRC OK
//          0x00:  CRC NOT OK (or no pkt was put in the RXFIFO due to filtering)
//-----------------------------------------------------------------------------
char RFReceivePacket(char *rxBuffer, char *length)
{
  char status[2];//做crc
  
  char pktLen;

  if ((TI_CC_SPIReadStatus(TI_CCxxx0_RXBYTES) & TI_CCxxx0_NUM_RXBYTES))
  {
    pktLen = TI_CC_SPIReadReg(TI_CCxxx0_RXFIFO); // Read length byte

    if (pktLen <= *length)                  // If pktLen size <= rxBuffer
    {
      TI_CC_SPIReadBurstReg(TI_CCxxx0_RXFIFO, rxBuffer, pktLen); // Pull data
      *length = pktLen;                     // Return the actual size
      TI_CC_SPIReadBurstReg(TI_CCxxx0_RXFIFO, status, 2);
                                            // Read appended status bytes
      // TI_CC_SPIStrobe(TI_CCxxx0_SFRX);      /// Flush RXFIFO
      return (char)(status[TI_CCxxx0_LQI_RX]&TI_CCxxx0_CRC_OK);
    }                                       // Return CRC_OK bit
    else
    {
      *length = pktLen;                     // Return the large size
      TI_CC_SPIStrobe(TI_CCxxx0_SFRX);      // Flush RXFIFO
      return 0;                             // Error
    }
  }
  else
      return 0;                             // Error
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久综合网| 久久精品国产久精国产| 亚洲香蕉伊在人在线观| 久久狠狠亚洲综合| av一区二区不卡| 91精品国产aⅴ一区二区| 欧美经典一区二区| 裸体一区二区三区| 欧美午夜精品久久久久久超碰 | 日韩av一二三| av资源站一区| 久久蜜臀精品av| 久久狠狠亚洲综合| 欧美一区二区日韩| 香蕉成人啪国产精品视频综合网 | 久久精品国产精品青草| 在线亚洲精品福利网址导航| 国产精品第四页| 国产精品一区二区无线| 精品久久久影院| 日本在线不卡视频一二三区| 色狠狠色狠狠综合| 综合激情网...| 99re热视频精品| 久久久精品免费免费| 国产麻豆精品theporn| 日韩精品一区二区三区三区免费| 五月天国产精品| 欧美色窝79yyyycom| 一区二区三区日韩在线观看| 91亚洲男人天堂| 中文字幕在线不卡一区| 99视频超级精品| 亚洲欧美在线视频| 色婷婷精品大在线视频| 一区二区欧美国产| 欧美日韩一区三区| 日韩精品电影一区亚洲| 欧美一卡在线观看| 极品瑜伽女神91| 国产欧美一区视频| 成人一区在线观看| 国产精品久久久久久久久免费相片 | 亚洲国产毛片aaaaa无费看| 色嗨嗨av一区二区三区| 一区二区国产视频| 欧美人牲a欧美精品| 免费视频最近日韩| 久久久久久久综合狠狠综合| 国产一区视频导航| 自拍偷在线精品自拍偷无码专区| 色成人在线视频| 亚洲成人午夜电影| 欧美大片在线观看一区| 麻豆精品久久久| 国产午夜久久久久| 色欧美88888久久久久久影院| 亚洲午夜日本在线观看| 日韩欧美国产小视频| 丰满白嫩尤物一区二区| 一二三区精品福利视频| 91麻豆精品91久久久久同性| 国产在线国偷精品免费看| 欧美日韩国产另类一区| 激情图区综合网| 亚洲视频免费在线观看| 欧美一区二区三区免费在线看| 国产a区久久久| 亚洲午夜一二三区视频| 精品国产精品一区二区夜夜嗨| 菠萝蜜视频在线观看一区| 性做久久久久久免费观看欧美| 欧美精品一区二区蜜臀亚洲| 色婷婷综合视频在线观看| 美女视频一区在线观看| 亚洲女人小视频在线观看| 日韩欧美国产一区二区在线播放| 91免费观看视频在线| 免费av网站大全久久| 亚洲色图20p| 久久久久久综合| 欧美午夜寂寞影院| av在线播放成人| 精品无人码麻豆乱码1区2区| 亚洲高清久久久| 中文字幕欧美日韩一区| 在线91免费看| 色婷婷久久久综合中文字幕 | 96av麻豆蜜桃一区二区| 久久精品国产久精国产| 午夜日韩在线电影| 亚洲欧美欧美一区二区三区| 久久精品视频一区二区三区| 欧美精品第1页| 91成人在线观看喷潮| 成人午夜电影小说| 精品亚洲成av人在线观看| 亚洲国产精品久久人人爱| 中文字幕人成不卡一区| 国产欧美一二三区| 久久久国产精华| 精品久久久久久亚洲综合网| 337p亚洲精品色噜噜| 欧美亚洲一区二区在线观看| 99久久久久免费精品国产| 国产精品亚洲第一| 国产精品影视天天线| 狠狠网亚洲精品| 精品一区在线看| 久久电影国产免费久久电影| 蜜桃一区二区三区在线观看| 日韩精品一二三| 麻豆精品视频在线| 国内成+人亚洲+欧美+综合在线| 日韩电影在线观看一区| 日韩高清不卡一区二区| 美女网站色91| 国模一区二区三区白浆| 国产精品自在欧美一区| 精品一二三四在线| 国产伦理精品不卡| 盗摄精品av一区二区三区| 国产69精品久久久久777| 成人深夜福利app| 99视频超级精品| 欧美在线视频全部完| 欧美日韩精品久久久| 欧美一区二区三区男人的天堂| 日韩精品一区二区三区三区免费| 2014亚洲片线观看视频免费| 久久久久国产精品免费免费搜索| 日本一区二区电影| 亚洲欧美二区三区| 视频一区免费在线观看| 另类小说一区二区三区| 风间由美一区二区三区在线观看 | 精品盗摄一区二区三区| 久久亚洲精华国产精华液 | 欧美片网站yy| 日韩欧美国产午夜精品| 国产日韩亚洲欧美综合| 亚洲欧洲制服丝袜| 日本亚洲视频在线| 国产福利一区二区三区视频在线| 99久久精品国产精品久久| 欧美视频在线观看一区二区| 日韩一级高清毛片| 中文字幕不卡在线播放| 夜夜夜精品看看| 国产一区不卡在线| 91麻豆123| 日韩欧美中文一区| 国产精品传媒视频| 免费日本视频一区| jlzzjlzz亚洲日本少妇| 51精品久久久久久久蜜臀| 国产午夜精品一区二区三区嫩草| 一区二区三区视频在线看| 国产做a爰片久久毛片| 91成人在线免费观看| 久久久久久久免费视频了| 亚洲一区中文在线| 国产成人综合亚洲91猫咪| 欧美三级日韩三级国产三级| 国产欧美一区视频| 日本成人超碰在线观看| 99久久免费精品| 久久久精品影视| 美女视频黄 久久| 久久久久99精品一区| 欧美一卡二卡在线观看| 国产精品国产三级国产普通话蜜臀| 亚洲第一主播视频| 91蜜桃婷婷狠狠久久综合9色| 欧美一区二区三区在线| 亚洲精品久久嫩草网站秘色| 国产一区二三区| 欧美福利视频一区| 亚洲综合清纯丝袜自拍| 成人在线综合网站| 久久久久久97三级| 久久99精品久久久久久动态图| 欧美三级乱人伦电影| 专区另类欧美日韩| 成人白浆超碰人人人人| 精品处破学生在线二十三| 日韩精品欧美精品| 欧美午夜精品电影| 一区二区三区久久| 91免费在线播放| 综合在线观看色| 成人91在线观看| 中文字幕欧美三区| 国产丶欧美丶日本不卡视频| 日韩欧美www| 麻豆91免费看| 2021国产精品久久精品| 韩国毛片一区二区三区| 精品99一区二区三区| 九色综合狠狠综合久久|