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

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

?? phyp.nc

?? IEEE802.15.4標準下的基于ZIGBEE協議棧的物理及鏈路層的代碼
?? NC
?? 第 1 頁 / 共 2 頁
字號:
/** * */module PhyP {  provides interface Init;  provides interface SplitControl as RadioControl;  provides interface PdSap;  provides interface PlmeSap;      uses interface Alarm<T32khz,uint32_t> as PhyTimer;//  uses interface Alarm<T32khz,uint32_t> as testTimer;  uses interface GeneralIO as CSN;  uses interface GeneralIO as RSTN;  uses interface GeneralIO as VREN;  uses interface GpioInterrupt as InterruptCCA;      uses interface GeneralIO as FIFO;  uses interface GeneralIO as FIFOP;  uses interface GpioInterrupt as InterruptFIFOP;      uses interface GpioCapture as CaptureSFD;  uses interface GeneralIO as CCA;  uses interface GeneralIO as SFD;        /**   * below are spi operation   */    uses interface Resource as ReceiveResource;  uses interface Resource as TransmitResource;  uses interface Resource as SyncResource;  uses interface Resource as ControlResource;//  uses interface Resource as OutsideControlResource;    // commands  uses interface CC2420Strobe as SFLUSHRX;  uses interface CC2420Strobe as SFLUSHTX;  uses interface CC2420Strobe as SNOP;  uses interface CC2420Strobe as SRXON;  uses interface CC2420Strobe as SRFOFF;//  uses interface CC2420Strobe as STXON;  uses interface CC2420Strobe as STXONCCA;  uses interface CC2420Strobe as STXON;    uses interface CC2420Strobe as SXOSCON;  uses interface CC2420Strobe as SXOSCOFF;  // registers  uses interface CC2420Register as FSCTRL;  uses interface CC2420Register as IOCFG0;  uses interface CC2420Register as IOCFG1;  uses interface CC2420Register as MDMCTRL0;  uses interface CC2420Register as MDMCTRL1;  uses interface CC2420Register as TXCTRL;  uses interface CC2420Register as RXCTRL1;      uses interface CC2420Register as FMSTATE;    // ram  uses interface CC2420Ram as IEEEADR;  uses interface CC2420Ram as PANID;  uses interface CC2420Ram as SHORTADR;  uses interface CC2420Ram as TXFIFO_RAM;  // fifos  uses interface CC2420Fifo as RXFIFO;  uses interface CC2420Fifo as TXFIFO;      uses interface Mem;    uses interface Random;    uses interface Leds;}implementation {//	uint8_t rxfifo[25];//	uint16_t fsctrlRead;//	uint16_t test_panId;	//	nxle_uint16_t panIdShortAddr[2];;	enum {    SEND_WAIT_SFD_PERIOD = 320};typedef enum {	S_VREG_STOPPED,	S_VREG_STARTING,	S_VREG_STARTED,	S_XOSC_STARTING,	S_XOSC_STARTED,} cc2420_control_state_t;typedef enum {	SYNC_PANID,	SYNC_SHORT_ADDRESS,	SYNC_TX_POWER,	SYNC_CURRENT_CHANNEL,	SYNC_CCA_MODE,	SYNC_ALL,	SYNC_IDLE,	SYNC_RXON,} sync_state_t;typedef enum {    TX_STOPPED,	    TX_STARTED,    TX_LOAD,    TX_CSMA_CA,    TX_SFD,    TX_EFD,    TX_ACK_WAIT,    TX_SEND_DONE,} transmit_state_t;typedef enum {    RX_STOPPED = 0,    RX_STARTED = 1,    RX_HEADER = 2,    RX_PAYLOAD = 3,    RX_HANDLING = 4,} receive_state_t;/**** * the variable in phyPib must sync with the value in cc2420  */norace phy_pib_t phyPib;/**** * control_state is for cc2420 control function use  */norace cc2420_control_state_t control_state = S_VREG_STOPPED;/**** * sync_state is for phyPib get and set  */norace sync_state_t sync_state = SYNC_IDLE;norace error_t syncStatus = SUCCESS;/**** * below variable is for sending packet   */norace transmit_state_t transmit_state = TX_STOPPED;norace error_t sendStatus = SUCCESS;norace bool isAckSending = TRUE; /**** * below variable is for receiving packet   */norace receive_state_t receive_state = RX_STOPPED;norace uint8_t overflow_buffer_left = 128;norace uint8_t missed_packets = 0;uint8_t receivePacketLength = 0;/**** * macDsn used in ackSending, it save the DSN of the packet and waiting for the right ack packet.   */norace uint8_t macDsn = 0;/**** * turn on the VReg of cc2420, waiting a period of time for VReg started.   */error_t startVReg();/**** * turn on the OSCILLATOR of cc2420, waiting CCA interrupt for OSCILLATOR started.   */error_t startOscillator();/**** * below function is for sending packet.   */void attempSend();void performCSMA();/**** * below function is for receiving packet.   */void receive(); void beginReceive();void afterHandleOnePacket(); void flushRxBuf();/**** * syncDone_task() is for phyPib set function.   */task void syncDone_task();/**** * sendDone_task() is for sending packet.   */task void sendDone_task();/**** * sendDone_task() is for receiving packet.   */task void receiveDone_task();/**** * below task is for cc2420 control use  */task void radioStopDone_task();task void radioStartDone_task();command error_t Init.init(){	phyPib.currentChannel = CC2420_DEF_CHANNEL;	phyPib.transmitPower = CC2420_DEF_POWER;		/* 2.4G support channel is 11-26 */	phyPib.channelsSupported = 0x7FFF800;			/* indicate energy above threshold AND have detected IEEE802.15.4 characters */	phyPib.CCAMode = 3; 		phyPib.csmaBE = 0;	phyPib.csmaNB = macMinBE;	phyPib.panId = DEFAULT_PANID;	phyPib.shortAddress = DEFAULT_SHORT_ADDRESS;	phyPib.psdu = 0;	phyPib.txLength = 0;	phyPib.pRxBuf = 0;		call CSN.makeOutput();	call RSTN.makeOutput();	call VREN.makeOutput();	call CCA.makeInput();	call SFD.makeInput();		transmit_state = TX_STOPPED;	receive_state = RX_STOPPED;	missed_packets = 0;	overflow_buffer_left = 128;		//	call testTimer.start(5000);	return SUCCESS;}command error_t RadioControl.start(){	return startVReg();}error_t startVReg(){	atomic 	{	if(control_state != S_VREG_STOPPED){		return FAIL;      }      control_state = S_VREG_STARTING;	}	call VREN.set();	call PhyTimer.start(CC2420_TIME_VREN);	return SUCCESS;}error_t startOscillator(){	atomic	{      if(control_state != S_VREG_STARTED)		return FAIL;      }      control_state = S_XOSC_STARTING;      call ControlResource.request();	return SUCCESS;}event void ControlResource.granted() {	switch(control_state){	case S_XOSC_STARTING:		call CSN.clr();		atomic		{    		      //enable XOSC CCA interupt		call IOCFG1.write( CC2420_SFDMUX_XOSC16M_STABLE << 	                         CC2420_IOCFG1_CCAMUX );		call InterruptCCA.enableRisingEdge();		call SXOSCON.strobe();                           		call IOCFG0.write( ( 1 << CC2420_IOCFG0_FIFOP_POLARITY ) |	                         ( 127 << CC2420_IOCFG0_FIFOP_THR ) );	                         		call FSCTRL.write( ( 1 << CC2420_FSCTRL_LOCK_THR ) |	                        ( ( (phyPib.currentChannel - 11)*5+357 ) << CC2420_FSCTRL_FREQ ) );	                           		call MDMCTRL0.write( ( 1 << CC2420_MDMCTRL0_RESERVED_FRAME_MODE ) |						 #ifdef IS_COORD						 ( 1 << CC2420_MDMCTRL0_PAN_COORDINATOR ) |						 #endif		                          ( 1 << CC2420_MDMCTRL0_ADR_DECODE ) |	                          ( 2 << CC2420_MDMCTRL0_CCA_HYST ) |	                          ( 3 << CC2420_MDMCTRL0_CCA_MOD ) |	                          ( 1 << CC2420_MDMCTRL0_AUTOCRC ) |	                          ( 1 << CC2420_MDMCTRL0_AUTOACK ) |	                          ( 2 << CC2420_MDMCTRL0_PREAMBLE_LENGTH ) );	//      call FMSTATE.read(&fsctrlRead);                     		call MDMCTRL1.write( ( 20 << CC2420_MDMCTRL1_CORR_THR ) );			//		   ( 2 << CC2420_MDMCTRL1_TX_MODE ) );	                           										                    	//      call MDMCTRL1.write(2 << CC2420_MDMCTRL1_TX_MODE);                     	                           //datasheet p67		call RXCTRL1.write( ( 1 << CC2420_RXCTRL1_RXBPF_LOCUR ) |  	                         ( 1 << CC2420_RXCTRL1_LOW_LOWGAIN ) |	                         ( 1 << CC2420_RXCTRL1_HIGH_HGM ) |	                         ( 1 << CC2420_RXCTRL1_LNA_CAP_ARRAY ) |	                         ( 1 << CC2420_RXCTRL1_RXMIX_TAIL ) |	                         ( 1 << CC2420_RXCTRL1_RXMIX_VCM ) |	                         ( 2 << CC2420_RXCTRL1_RXMIX_CURRENT ) );	      call TXCTRL.write( ( 2 << CC2420_TXCTRL_TXMIXBUF_CUR ) |	                         ( 3 << CC2420_TXCTRL_PA_CURRENT ) |	                         ( 1 << CC2420_TXCTRL_RESERVED ) |	                         ( (phyPib.transmitPower & 0x1F) << CC2420_TXCTRL_PA_LEVEL ) ); 			}		break;    	default: break;	}                     }	async event void InterruptCCA.fired() {	//change to little endian	nxle_uint16_t id[2];	id[0] = phyPib.panId;	id[1] = phyPib.shortAddress;	control_state = S_XOSC_STARTED;	call InterruptCCA.disable();	call IOCFG1.write(0);	//beacause PANID and SHORTADR in the continuous memory	call PANID.write(0, (uint8_t*)id, 4 );	call CSN.set();	call CSN.clr();	call IEEEADR.read(0, (phyPib.longAddress.bytes), 8);	call CSN.set();//	call SFLUSHTX.strobe();	call CSN.clr();	call SRXON.strobe();	call CSN.set();	transmit_state = TX_STARTED;	call CaptureSFD.captureRisingEdge();	call InterruptFIFOP.enableFallingEdge();	receive_state = RX_STARTED;	missed_packets = 0;	overflow_buffer_left = 128;		phyPib.rxOn = TRUE;		post radioStartDone_task();			call ControlResource.release();	}command error_t RadioControl.stop(){	if(control_state != S_XOSC_STARTED)		return FAIL;	control_state = S_VREG_STOPPED;	call RSTN.clr();	call VREN.clr();	call RSTN.set();	call InterruptFIFOP.disable();	transmit_state = TX_STOPPED;	receive_state = RX_STOPPED;	missed_packets = 0;	overflow_buffer_left = 128;		phyPib.rxOn = FALSE;	post radioStopDone_task();	return SUCCESS;		}task void radioStopDone_task(){	control_state = S_VREG_STOPPED;	signal RadioControl.stopDone(SUCCESS);}task void radioStartDone_task(){	signal RadioControl.startDone(SUCCESS);}/***************************** next are phyPib set and get function *****************************************/command uint8_t PlmeSap.getCurrentChannel(){	return phyPib.currentChannel;}command void PlmeSap.setCurrentChannel(uint8_t currentChannel){	atomic	{	if(currentChannel >= 11 && currentChannel <=26 )		phyPib.currentChannel = currentChannel;	}}command error_t PlmeSap.directSetCurrentChannel(uint8_t currentChannel){	if(currentChannel < 11 || currentChannel > 26)		return FAIL;	atomic	{	if(sync_state != SYNC_IDLE || control_state != S_XOSC_STARTED)		return FAIL;	sync_state = SYNC_CURRENT_CHANNEL;	}	phyPib.currentChannel = currentChannel;	return call SyncResource.request();		}command uint32_t* PlmeSap.getSupportChannels(){	return &(phyPib.channelsSupported);	}command uint8_t PlmeSap.getTxPower(){	return phyPib.transmitPower&(0x1f);}command void PlmeSap.setTxPower(uint8_t txPower){	phyPib.transmitPower = txPower&0x1f; }command error_t PlmeSap.directSetTxPower(uint8_t txPower){	atomic	{	if(sync_state != SYNC_IDLE || control_state != S_XOSC_STARTED)		return FAIL;	sync_state = SYNC_TX_POWER;	}	phyPib.transmitPower = txPower & 0x1f;	return call SyncResource.request();	}command uint8_t PlmeSap.getCCAMode(){	return phyPib.CCAMode;}command void PlmeSap.setCCAMode(uint8_t ccaMode){	if(ccaMode > 4 || ccaMode == 0)		phyPib.CCAMode = ccaMode;}command error_t PlmeSap.directSetCCAMode(uint8_t ccaMode){	if(ccaMode > 4 || ccaMode == 0)		return FAIL;	atomic	{	if(sync_state != SYNC_IDLE || control_state != S_XOSC_STARTED)		return FAIL;	sync_state = SYNC_CCA_MODE;	}	phyPib.CCAMode = ccaMode;	return call SyncResource.request();		}command saddr_t* PlmeSap.getShortAddr(){	return &(phyPib.shortAddress);}command void PlmeSap.setShortAddr(saddr_t address){	atomic phyPib.shortAddress = address;}command error_t PlmeSap.directSetShortAddr(saddr_t address){	atomic	{	if(sync_state != SYNC_IDLE || control_state != S_XOSC_STARTED)		return FAIL;	sync_state = SYNC_SHORT_ADDRESS;	}	phyPib.shortAddress = address;	return call SyncResource.request();			}command panid_t* PlmeSap.getPanId(){	return &(phyPib.panId);}command void PlmeSap.setPanId(panid_t panId){	phyPib.panId = panId;}command error_t PlmeSap.directSetPanId(panid_t panId){	atomic	{	if(sync_state != SYNC_IDLE || control_state != S_XOSC_STARTED)		return FAIL;	sync_state = SYNC_PANID;	}	phyPib.panId = panId;	return call SyncResource.request();			}command error_t PlmeSap.sync(){	atomic	{	if(sync_state != SYNC_IDLE || control_state != S_XOSC_STARTED)		return FAIL;	sync_state = SYNC_ALL;	}	return call SyncResource.request();			}command laddr_t* PlmeSap.getLongAddr(){	return &phyPib.longAddress;}	command error_t PlmeSap.rxControl(bool isRxOn){	atomic	{	if(sync_state != SYNC_IDLE || control_state != S_XOSC_STARTED)		return FAIL;	sync_state = SYNC_RXON;	}	phyPib.rxOn = isRxOn;	return call SyncResource.request();		}event void SyncResource.granted() {	//change to little endia	nxle_uint16_t id[2];		if( sync_state == SYNC_RXON){		if(phyPib.rxOn){

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美精品日韩区二区麻豆天美| 欧美日韩一区二区三区在线看 | 精品一区二区三区在线观看| 久久尤物电影视频在线观看| 成人午夜视频免费看| 亚洲欧美日韩在线不卡| 精品成a人在线观看| 色999日韩国产欧美一区二区| 免播放器亚洲一区| 亚洲色图一区二区| 欧美精品一区二区三区四区| 欧美大片一区二区| 欧美午夜理伦三级在线观看| 成人免费黄色在线| av福利精品导航| 国产91精品露脸国语对白| 青娱乐精品视频| 国产一区二区三区四| 日韩国产欧美在线观看| 亚洲人成亚洲人成在线观看图片 | 中文字幕成人网| 9191精品国产综合久久久久久| 成人激情黄色小说| 国产寡妇亲子伦一区二区| 久久精品久久99精品久久| 亚洲第一会所有码转帖| 亚洲精品成人天堂一二三| 国产欧美视频在线观看| 亚洲精品美腿丝袜| 日韩成人av影视| 国产91丝袜在线18| 欧美日韩情趣电影| 中文字幕第一区第二区| 日韩精品一级中文字幕精品视频免费观看| 亚洲人成电影网站色mp4| 日本怡春院一区二区| 成人丝袜高跟foot| 欧美日韩不卡一区| 欧美一级精品在线| 精品国产91久久久久久久妲己 | 91精品蜜臀在线一区尤物| 日韩女优av电影| 亚洲一区二区精品视频| 一区二区理论电影在线观看| 亚洲一区电影777| 国产成人免费在线| 日韩欧美激情在线| 亚洲国产综合在线| 美女视频第一区二区三区免费观看网站 | 亚洲第一激情av| 国产成人午夜精品5599| 日韩欧美成人午夜| 亚洲第一会所有码转帖| 99视频一区二区| 国产日产欧美一区二区视频| 免费久久99精品国产| 在线看一区二区| 日韩欧美一区二区在线视频| 亚洲欧美视频在线观看视频| 懂色av中文一区二区三区 | 国产一区二区成人久久免费影院 | 色av综合在线| 国产精品污污网站在线观看| 综合亚洲深深色噜噜狠狠网站| 久久国产婷婷国产香蕉| 欧美精品九九99久久| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲图片欧美色图| 欧美三级在线播放| 国产精品美女www爽爽爽| 亚洲一区二区视频在线观看| 色综合欧美在线| 欧美成人精品1314www| 国产精品久久久久影院亚瑟| 视频在线观看国产精品| 欧美日韩色一区| 亚洲伊人伊色伊影伊综合网| 色婷婷综合久久| 亚洲综合久久av| 欧美乱妇一区二区三区不卡视频| 一区二区三区不卡视频| 色哟哟日韩精品| 亚洲高清一区二区三区| 欧美日韩精品欧美日韩精品一| 性久久久久久久久| 日韩西西人体444www| 日日摸夜夜添夜夜添国产精品 | 久久精品一区八戒影视| 亚洲一区二区三区不卡国产欧美| 色视频欧美一区二区三区| 伊人色综合久久天天人手人婷| 91黄色激情网站| 日韩精品免费视频人成| 久久新电视剧免费观看| 成人18视频在线播放| 日韩理论片一区二区| 欧美日本免费一区二区三区| 久久国产免费看| 综合久久给合久久狠狠狠97色 | 国产成人夜色高潮福利影视| 国产精品毛片无遮挡高清| 欧美色综合网站| 国产一区在线观看麻豆| 亚洲精品欧美综合四区| 日韩欧美一二三四区| a亚洲天堂av| 美腿丝袜亚洲三区| 中文字幕二三区不卡| 欧美另类videos死尸| 国产综合久久久久影院| 精品精品国产高清一毛片一天堂| av电影在线不卡| 久久99精品久久久久| 国产精品久久久一区麻豆最新章节| 欧美日韩国产免费| 国产成人精品综合在线观看 | 日韩欧美的一区二区| 97精品国产露脸对白| 亚洲码国产岛国毛片在线| 欧美高清激情brazzers| 成人免费看的视频| 蜜桃av一区二区| 亚洲1区2区3区视频| 国产精品毛片大码女人| 精品美女在线播放| 91美女片黄在线观看| 亚洲精品国产一区二区三区四区在线| 日韩亚洲欧美在线| 欧美日韩极品在线观看一区| 高清成人免费视频| 久久99日本精品| 日韩精品91亚洲二区在线观看| 亚洲乱码国产乱码精品精小说 | 亚洲精品视频自拍| 国产亚洲精品aa| 日韩美女主播在线视频一区二区三区 | 国产精品毛片大码女人| 久久综合国产精品| 欧美一区二区三区啪啪| 国产一区二区不卡在线| 日本vs亚洲vs韩国一区三区二区| 亚洲靠逼com| 亚洲欧美一区二区三区国产精品| 日本一区二区三区dvd视频在线| 日韩欧美国产一区在线观看| 欧美日韩国产经典色站一区二区三区| 91蜜桃视频在线| 欧美自拍偷拍一区| 91福利在线播放| 欧美日韩在线不卡| 欧美日本免费一区二区三区| 欧美亚洲国产怡红院影院| 91在线高清观看| 欧美在线制服丝袜| 欧美午夜寂寞影院| 欧美日韩卡一卡二| 9191久久久久久久久久久| 在线电影一区二区三区| 欧美日韩精品一区二区三区| 欧美日韩成人在线| 日韩视频一区在线观看| 欧美成人一级视频| 久久综合色之久久综合| 国产亚洲欧美中文| 最新日韩av在线| 久久综合久久综合亚洲| 久久色.com| 国产精品久久久久久久久图文区| 国产欧美日韩综合精品一区二区| 中文字幕国产一区| 一区二区三区成人| 免费看日韩a级影片| 国产精品一二三四| 日韩高清不卡一区| 国产一区二区三区综合| 99在线精品观看| 欧美性猛交xxxx乱大交退制版| 欧美一区二区三区在线观看视频| 日韩欧美色电影| 国产精品嫩草影院av蜜臀| 一区二区三区小说| 免费在线一区观看| 国产精品亚洲人在线观看| 不卡的电影网站| 欧美日韩视频一区二区| 国产视频一区二区在线观看| 一区二区日韩电影| 国产原创一区二区| 一本大道久久a久久综合| 日韩美一区二区三区| 亚洲精品国产一区二区精华液 | 中文字幕在线观看一区| 日韩成人av影视| av电影在线不卡| 欧美一区二区三区白人| 日韩美女视频一区二区 | 91污片在线观看| 日韩欧美国产综合在线一区二区三区| 国产精品久久久久7777按摩| 乱一区二区av|