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

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

?? cc2420init.c

?? CC2420基本收發功能的實現。mcu:msp430
?? C
字號:
#include "port_config_CC2420.h"
#include "cc2420const.h"
#include <msp430x16x.h>
volatile int gCurrentParameters[14];
void CC2420_Set_PIN_DIR(void){

 DIROUT_PHY_RESETn;
 DIROUT_PHY_VREG_EN;
 DIROUT_PHY_CSn;

 SET_PHY_RESETn(1);
 SET_PHY_VREG_EN(0);
 SET_PHY_CSn(1);

 DIRIN_PHY_FIFOP;
 DIRIN_PHY_GIO0;
 DIRIN_PHY_SFD;
 DIRIN_PHY_GIO1;
}
void delay(void)
{
  int i;
  for(i=0;i<1000;i++);
}
int isTxIntrPending()	//TXFIFO EMPTY 返回true
{
  if (IFG1 & UTXIFG0){
    IFG1 &= ~UTXIFG0;
    return 1;
  }
  return 0;
}
int isRxIntrPending()//RXFIFO FULL 返回true
{
  if (IFG1 & URXIFG0){
    IFG1 &= ~URXIFG0;
    return 1;
  }
  return 0;
}
void SPI_Tx(unsigned char data) //SPI tx
{
  while((UTCTL0 & 0x01 )!=0x01);
  TXBUF0 = data;

}
unsigned char SPI_Rx() //SPI rx
{
  unsigned char data;
  data = RXBUF0;
  return data;
}
void HPLCC2420_cmd(char addr) {


   P4OUT &= ~0x04;
      isTxIntrPending();
      SPI_Rx();
      SPI_Tx(addr);
      while(!(isRxIntrPending())) ;
   P4OUT |= 0x04;



}
void halRfWaitForCrystalOscillator(){
	char spiStatusByte;
       PHY_Selected();//CS=0
    // Poll the SPI status byte until the crystal oscillator is stable
    do {
	    SPI_Tx(CC2420_SNOP);
            spiStatusByte = SPI_Rx();
   } while (!(spiStatusByte & 0x40));
     PHY_Deselected();//CS=1
}
 /**
   * Read 16-bit data
   *
   * @return 16-bit register value
   */
int HPLCC2420_read(char addr) {
    int data = 0;
    PHY_Selected();
      isTxIntrPending();
      SPI_Rx();
      SPI_Tx(addr | 0x40);
      while(!isRxIntrPending()) ;
      SPI_Rx();
      SPI_Tx(0);
      while(!(isRxIntrPending())) ;
      data = SPI_Rx();
      SPI_Tx(0);
      while( !(isRxIntrPending())) ;
      data = ((data << 8) & 0x0FF00 )| (SPI_Rx() & 0x0FF);
    PHY_Deselected();
   return data;
}
void flushRxfifo(void)
{
     HPLCC2420_read(CC2420_RXFIFO);          //flush Rx fifo
     HPLCC2420_cmd(0x08);//FASTSPI_STROBE(CC2420_SFLUSHRX);
     HPLCC2420_cmd(0x08);//FASTSPI_STROBE(CC2420_SFLUSHRX);
}
void RfRegInit(void){
       // Set default parameters
    gCurrentParameters[CP_MAIN] = 0xf800;


   /* set up REG_MDMCTRL0 */
    // Set AUTOACK bit in MDMCTRL0 register.
    // 15:14 = '00' = Reserved
    // 13    = '0'  = Reserved frames are rejected
    // 12    = '?'  = '1' if this is coordinator, '0' if otherwise
    // 11    = '1'  = Address decoding is enabled
    // 10:8  = '010'    = CCA Hysteresis in DB - default value
    // 7:6   = '11' = CCA = 1, when RSSI_VAL < CCA_THR - CCA_HYST and not receiving valid IEEE 802.15.4 data
    // 5     = '1'  = Auto CRC
    // 4     = '1'  = Auto ACK
    // 3:0   = '0010' = 3 leading zero bytes - IEEE compliant.
 //#ifdef I_AM_COORDINATOR
      //gCurrentParameters[CP_MDMCTRL0]=0x1AF2;
      //0b 0001 1010 1111 0010
 //#else
     gCurrentParameters[CP_MDMCTRL0]=0x0AF2;
     //0b 0000 1010 1111 0010
//#endif
   // gCurrentParameters[CP_MDMCTRL0] &= ~(1 << CC2420_MDMCTRL0_AUTOACK);
 gCurrentParameters[CP_MDMCTRL1]=0x0600;
    gCurrentParameters[CP_RSSI] =     0xE080;
    gCurrentParameters[CP_SYNCWORD] = 0xA70F;

 /*
 *  PA_LEVEL determiens output power of transciever
 *          According to Table 9 of CC2420 datasheet
 *
 *          PA_LEVEL (TXCTRL.LSB)       Output Power (dBm)  Current Consumtiion
 *          ====================================================================
 *          0xFF                        0                   17.4 mA
 *          0xFB                        -1                  16.5 mA
 *          0xF7                        -3                  15.2 mA
 *          0xF3                        -5                  13.9 mA
 *          0xEF                        -7                  12.5 mA
 *          0xEB                        -10                 11.2 mA
 *          0xE7                        -15                 9.9 mA
 *          0xE3                        -25                 8.5 mA
 */
    gCurrentParameters[CP_TXCTRL] = ((1 << CC2420_TXCTRL_BUFCUR) |
       (1 << CC2420_TXCTRL_TURNARND) | (3 << CC2420_TXCTRL_PACUR) |
       (1 << CC2420_TXCTRL_PADIFF) | (CC2420_DEF_RFPOWER << CC2420_TXCTRL_PAPWR));

    gCurrentParameters[CP_RXCTRL0] = ((1 << CC2420_RXCTRL0_BUFCUR) |
       (2 << CC2420_RXCTRL0_MLNAG) | (3 << CC2420_RXCTRL0_LOLNAG) |
       (2 << CC2420_RXCTRL0_HICUR) | (1 << CC2420_RXCTRL0_MCUR) |
       (1 << CC2420_RXCTRL0_LOCUR));

    gCurrentParameters[CP_RXCTRL1]  = ((1 << CC2420_RXCTRL1_LOLOGAIN) |
       (1 << CC2420_RXCTRL1_HIHGM) |  (1 << CC2420_RXCTRL1_LNACAP) |
       (1 << CC2420_RXCTRL1_RMIXT) |  (1 << CC2420_RXCTRL1_RMIXV)  |
       (2 << CC2420_RXCTRL1_RMIXCUR));

    gCurrentParameters[CP_FSCTRL]   = ((1 << CC2420_FSCTRL_LOCK) |
       ((357+5*(CC2420_DEF_CHANNEL-11)) << CC2420_FSCTRL_FREQ));

    gCurrentParameters[CP_SECCTRL0] = ((1 << CC2420_SECCTRL0_CBCHEAD) |
       (1 << CC2420_SECCTRL0_SAKEYSEL)  | (1 << CC2420_SECCTRL0_TXKEYSEL) |
       (1 << CC2420_SECCTRL0_SECM));

    gCurrentParameters[CP_SECCTRL1] = 0;
    gCurrentParameters[CP_BATTMON]  = 0;

    // set fifop threshold to greater than size of tos msg,
    // fifop goes active at end of msg
   /* gCurrentParameters[CP_IOCFG0]   = (((127) << CC2420_IOCFG0_FIFOTHR) |
        (1 <<CC2420_IOCFG0_FIFOPPOL)) ;*/
    	gCurrentParameters[CP_IOCFG0]   = (((127) << CC2420_IOCFG0_FIFOTHR) |
        (0 <<CC2420_IOCFG0_FIFOPPOL)) ;
         gCurrentParameters[CP_IOCFG0]|=1<<CC2420_IOCFG0_BCNACCEPT; //add
    gCurrentParameters[CP_IOCFG1]   =  0;

}
int isTxEmpty(){//發送緩沖區為空返回true
    if (U0TCTL & TXEPT) {
      return 1;
    }
    return 0;
}
char HPLCC2420_write(char addr, int data) {
    char status = 0;
    PHY_Selected();

      isTxIntrPending();
     SPI_Rx();
     SPI_Tx(addr);

      while(!(isRxIntrPending())) ;


      status = (SPI_Rx()&0x7E);
      SPI_Tx((data >> 8) & 0x0FF);
      while( !(isTxIntrPending())) ;
      SPI_Tx(data & 0x0FF);
      while(!(isTxEmpty())) ;
      PHY_Deselected();
    return status;
}
int SetRegs(void){
    int data;
/*
   HPLCC2420_write(CC2420_IOCFG0, gCurrentParameters[CP_IOCFG0]);
	HPLCC2420_write(CC2420_FSCTRL, gCurrentParameters[CP_FSCTRL]);
		
     HPLCC2420_write(CC2420_MDMCTRL0, gCurrentParameters[CP_MDMCTRL0]);
    data =  HPLCC2420_read(CC2420_MDMCTRL0);
    if (data != gCurrentParameters[CP_MDMCTRL0]) return 0;
    //return 1;
*/
   HPLCC2420_write(CC2420_MAIN,gCurrentParameters[CP_MAIN]);   		
   HPLCC2420_write(CC2420_MDMCTRL0, gCurrentParameters[CP_MDMCTRL0]);
    data =   HPLCC2420_read(CC2420_MDMCTRL0);
    if (data != gCurrentParameters[CP_MDMCTRL0]) return 0;

     HPLCC2420_write(CC2420_MDMCTRL1, gCurrentParameters[CP_MDMCTRL1]);
     HPLCC2420_write(CC2420_RSSI, gCurrentParameters[CP_RSSI]);
     HPLCC2420_write(CC2420_SYNCWORD, gCurrentParameters[CP_SYNCWORD]);
     HPLCC2420_write(CC2420_TXCTRL, gCurrentParameters[CP_TXCTRL]);
     HPLCC2420_write(CC2420_RXCTRL0, gCurrentParameters[CP_RXCTRL0]);
     HPLCC2420_write(CC2420_RXCTRL1, gCurrentParameters[CP_RXCTRL1]);
      HPLCC2420_write(CC2420_FSCTRL, gCurrentParameters[CP_FSCTRL]);

     HPLCC2420_write(CC2420_SECCTRL0, gCurrentParameters[CP_SECCTRL0]);
     HPLCC2420_write(CC2420_SECCTRL1, gCurrentParameters[CP_SECCTRL1]);
      HPLCC2420_write(CC2420_IOCFG0, gCurrentParameters[CP_IOCFG0]);
     HPLCC2420_write(CC2420_IOCFG1, gCurrentParameters[CP_IOCFG1]);

     HPLCC2420_cmd(CC2420_SFLUSHTX);    //flush Tx fifo
     HPLCC2420_cmd(CC2420_SFLUSHRX);

 return 1;

}
/*初始化CC2420,開啟接收網絡功能*/
void HPLCC2420_ini(){
	HPLCC2420_cmd(CC2420_SXOSCON);//HPLCC2420_cmd(0x01);    //
	   halRfWaitForCrystalOscillator();
        RfRegInit();  	
	if(!SetRegs())return;
	
	
	

	flushRxfifo();//HPLCC2420_cmd(CC2420_SFLUSHRX);//HPLCC2420_cmd(0x08);//FASTSPI_STROBE(CC2420_SFLUSHRX);//0x08
	HPLCC2420_cmd(CC2420_SFLUSHTX);	 //flush tx
	HPLCC2420_cmd(CC2420_SRXON);//HPLCC2420_cmd(0x03);//FASTSPI_STROBE(CC2420_SRXON);//0x03

}
void cc2420init()
{
   CC2420_Set_PIN_DIR();//置引腳狀態

    //PHY_Enable
    SET_PHY_VREG_EN(1);//Enable voltage regulator

    delay();              //wait 1ms
    //PHY_RESET
    SET_PHY_RESETn(0);//P6OUT &= ~0x40;   //reset
    delay();             //wait 1ms
    SET_PHY_RESETn(1);//P6OUT |= 0x40;
    delay();             //wait 1ms
    //power down status now
    HPLCC2420_ini();

    //enable I/O receive interrupt
 P1IES = 0X00;
    P1IE = 0x01;//BIT0; //PKT_INT  FIFOP ,Rising Edge
    P1IFG = 0X00;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美va在线播放| 成人性生交大片免费看中文网站| 成人高清视频免费观看| 日韩欧美在线网站| 亚洲高清在线视频| 一本大道久久a久久精品综合| 精品国产凹凸成av人导航| 青青草伊人久久| 制服丝袜亚洲播放| 五月天欧美精品| 91精品欧美综合在线观看最新| 一区二区三区四区在线播放| 色综合天天综合网天天狠天天| 亚洲国产成人在线| 99久久99久久精品免费观看| 国产精品成人免费| 在线免费观看不卡av| 一区二区三区四区蜜桃| 色婷婷综合久久久| 亚洲国产中文字幕| 日韩午夜在线影院| 国产主播一区二区| 午夜精品久久一牛影视| 欧美日韩aaa| 美女视频黄 久久| 久久亚洲综合色| av中文字幕一区| 亚洲一区二区精品3399| 欧美高清一级片在线| 韩国三级在线一区| 日韩理论片中文av| 欧美日韩久久久| 国产精品综合一区二区三区| 亚洲少妇最新在线视频| 欧美日韩国产不卡| 国产精品综合二区| 一区二区三区四区不卡视频| 51精品久久久久久久蜜臀| 国产高清不卡二三区| 亚洲美女淫视频| 欧美精品一区二区三区很污很色的| 成人精品国产一区二区4080| 亚洲高清不卡在线| 国产精品久久久久久久裸模| 欧美日韩国产另类一区| 成人av在线电影| 青青草一区二区三区| 一区二区三区四区乱视频| 久久午夜羞羞影院免费观看| 欧美日韩美女一区二区| www.激情成人| 国产综合色在线视频区| 亚洲自拍偷拍欧美| 亚洲视频一区在线观看| 亚洲一区二区在线免费看| 久久久久久久久久美女| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 成人激情小说网站| 国内精品久久久久影院薰衣草| 亚洲一二三区视频在线观看| 亚洲欧洲成人自拍| 日本一区免费视频| 久久精品人人做| 久久天堂av综合合色蜜桃网| 日韩一级免费一区| 91麻豆精品国产无毒不卡在线观看| 在线一区二区三区四区| 色狠狠av一区二区三区| 一本高清dvd不卡在线观看| 99久久久国产精品| 99久久久免费精品国产一区二区| 国产伦精品一区二区三区视频青涩| 老司机免费视频一区二区三区| 日本不卡视频一二三区| 麻豆免费看一区二区三区| 日本va欧美va精品| 精品在线免费视频| 国产成人综合亚洲网站| 99国产精品久久久| 欧美亚洲禁片免费| 欧美一区二区三区四区在线观看| 欧美日韩成人综合天天影院| 欧美一区在线视频| 久久久久久免费| 亚洲欧洲中文日韩久久av乱码| 亚洲黄色免费网站| 国产高清在线精品| 99久久99久久精品免费观看| 欧美在线观看18| 日韩久久久久久| 国产精品久久久久久久久免费桃花 | 51精品久久久久久久蜜臀| 欧美zozo另类异族| 国产精品不卡一区| 日本成人在线看| 成人午夜在线视频| 欧美在线|欧美| 国产三级一区二区| 亚洲第一激情av| 福利一区二区在线观看| 欧美四级电影在线观看| 国产亚洲精品福利| 亚洲bdsm女犯bdsm网站| 国产成人三级在线观看| 欧美精品亚洲二区| 亚洲欧美视频在线观看| 国产原创一区二区| 欧美妇女性影城| **性色生活片久久毛片| 久久99精品国产麻豆不卡| 一本大道av一区二区在线播放| 精品日韩在线观看| 午夜激情一区二区三区| 色老头久久综合| 国产精品久久久久桃色tv| 美女网站在线免费欧美精品| 欧美视频三区在线播放| 免费观看在线综合色| 在线观看日产精品| 国产精品大尺度| 国产成人高清视频| 久久奇米777| 国产一区二区在线视频| 日韩写真欧美这视频| 首页国产欧美日韩丝袜| 欧美精品亚洲二区| 亚洲成人av电影| 欧美日韩一区二区不卡| 亚洲一区二区三区精品在线| 91久久精品一区二区三| 亚洲免费在线视频一区 二区| 99久久精品费精品国产一区二区| 欧美国产日韩a欧美在线观看 | 亚洲国产色一区| 欧美色爱综合网| 午夜精品爽啪视频| 欧美xxxxx裸体时装秀| 久久精品国产一区二区| 久久伊人中文字幕| 丁香另类激情小说| 一区二区三区中文在线| 欧美精品在欧美一区二区少妇| 亚洲大型综合色站| 精品婷婷伊人一区三区三| 午夜伦欧美伦电影理论片| 日韩一级视频免费观看在线| 精品一区二区三区免费观看| 欧美国产日本视频| 91久久国产综合久久| 亚洲va欧美va人人爽午夜| 欧美电视剧免费全集观看| 东方欧美亚洲色图在线| 亚洲国产欧美一区二区三区丁香婷| 欧美三级资源在线| 国产精品123| 久久国产精品99精品国产| 欧美高清在线视频| 6080yy午夜一二三区久久| 成人一级视频在线观看| 亚洲综合色成人| 亚洲国产精品二十页| 91精品国产乱| 99免费精品视频| 国内精品在线播放| 亚洲高清免费观看高清完整版在线观看| 日韩一级片在线观看| 欧洲av在线精品| 成人av片在线观看| 国产在线观看免费一区| 午夜视频在线观看一区| 国产精品超碰97尤物18| 欧美大片日本大片免费观看| 91香蕉视频mp4| 国产黑丝在线一区二区三区| 亚洲 欧美综合在线网络| 亚洲欧美另类久久久精品| 久久久综合网站| 精品久久久影院| 91精品国产综合久久蜜臀| 欧美视频在线观看一区| 99这里只有精品| 97成人超碰视| 97超碰欧美中文字幕| 成人丝袜高跟foot| 国产精品1区2区3区在线观看| 亚洲va在线va天堂| 午夜久久久久久电影| 亚洲1区2区3区4区| 首页国产欧美日韩丝袜| 亚洲另类春色国产| 亚洲乱码国产乱码精品精小说| 中文字幕一区二区三区精华液| 国产精品成人午夜| 樱桃视频在线观看一区| 一区二区三区电影在线播| 亚洲成人1区2区| 欧美aaaaaa午夜精品| 国内精品久久久久影院薰衣草| 麻豆91在线播放| 国产成人在线网站|