⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 si4432.c.svn-base

📁 si4432官方的程序
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
  + NOTES:            +  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/RF_ENUM RFIdle(void){	SpiWriteAddressData((REG_WRITE | OperatingFunctionControl1), 0x01);	//diasble all ITs	SpiWriteAddressData((REG_WRITE | InterruptEnable1), 0x00);	SpiWriteAddressData((REG_WRITE | InterruptEnable2), 0x00);	SpiReadWriteWord(InterruptStatus1 << 8);	SpiReadWriteWord(InterruptStatus2 << 8);	return RF_OK;}/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  +  + FUNCTION NAME:  RF_ENUM RFTransmit(uint8 * packet, uint8 length)  +  + DESCRIPTION:    starts packet transmission  +  + INPUT:			MESSAGE structure  +  + RETURN:         RF_OK: 				the packet sent correctly  +					RF_ERROR_TIMING: 	timing poblem -> the packet didn't send within timeout  +					RF_ERROR_PARAMETER: the command is ignored, some of the   +										input parameter(s) are  +										out of the valid range  +  + NOTES:            +  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/RF_ENUM RFTransmit(uint8 * packet, uint8 length){	xdata uint8 temp8;		//set packet content	SpiWriteAddressData((REG_WRITE | TransmitPacketLength), length);						for(temp8=0;temp8<length;temp8++)	{		SpiWriteAddressData((REG_WRITE | FIFOAccess),packet[temp8]);			}		//enable the wanted ITs	SpiWriteAddressData((REG_WRITE | InterruptEnable1), 0x04);	SpiWriteAddressData((REG_WRITE | InterruptEnable2), 0x00);	SpiReadWriteWord(InterruptStatus1 << 8);	SpiReadWriteWord(InterruptStatus2 << 8);	//enable transmitter	SpiWriteAddressData((REG_WRITE | OperatingFunctionControl1), 0x09);		while(RF_NIRQ_PIN == 1);	return RF_OK;}/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  +  + FUNCTION NAME:  RF_ENUM RFReceive(void)  +  + DESCRIPTION:    starts packet reception  +  + INPUT:			None  +  + RETURN:         RF_OK: 				the operation was succesfull  +  + NOTES:            +  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/RF_ENUM RFReceive(void){		//enable the packet valid interrupt	SpiWriteAddressData((REG_WRITE | InterruptEnable1), 0x02);  	SpiWriteAddressData((REG_WRITE | InterruptEnable2), 0x00); 		SpiReadWriteWord(InterruptStatus1 << 8);	SpiReadWriteWord(InterruptStatus2 << 8);	//enable receiver chain   SpiWriteAddressData((REG_WRITE | OperatingFunctionControl1), 0x05);	return RF_OK;}/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  +  + FUNCTION NAME:  RF_ENUM RFPacketReceived(uint8 * packet, uint8 * length)  +  + DESCRIPTION:    check wheter the packet received or not.  +  + INPUT:			pointers for storing data and length  +  + RETURN:         RF_PACKET_RECEIVED:		packet received  +					RF_NO_PACKET:			packet is not yet received  +  + NOTES:            +  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/RF_ENUM RFPacketReceived(uint8 * packet, uint8 * length){	xdata uint8 i;	if( RF_NIRQ_PIN == 0 )	{				i = (uint8)(0x00FF & SpiReadWriteWord(InterruptStatus1 << 8));					if( (i & 0x01) == 0x01 )		{//CRC error			//disable receiver 			SpiWriteAddressData((REG_WRITE | OperatingFunctionControl1), 0x01);			return RF_CRC_ERROR;		}		if( (i & 0x02) == 0x02 )		{//packet received			//read buffer			*length =  (uint8)(0x00FF & SpiReadWriteWord(ReceivedPacketLength << 8)) ;			for(i=0;i<*length;i++)			{				*packet++ = (uint8)(0x00FF & SpiReadWriteWord(FIFOAccess << 8));			}			//disable receiver 			SpiWriteAddressData((REG_WRITE | OperatingFunctionControl1), 0x01);			return RF_PACKET_RECEIVED;		}	}		return RF_NO_PACKET;}/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  +  + FUNCTION NAME:  void RFCWTest(void)  +  + DESCRIPTION:    set the chip into CW mode  +  + INPUT:			None  +  + RETURN:         None  +  + NOTES:            +  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/void RFCWTest(void){			//enable CW mode	SpiWriteAddressData((REG_WRITE | ModulationModeControl2), 0x00);	//disable packet handler & CRC16	SpiWriteAddressData((REG_WRITE | DataAccessControl), 0x00);	//enable transmitter	SpiWriteAddressData((REG_WRITE | OperatingFunctionControl1), 0x09);	//disable all the ITs	SpiWriteAddressData((REG_WRITE | InterruptEnable1), 0x00);	SpiWriteAddressData((REG_WRITE | InterruptEnable2), 0x00);	//set GPIO0 to RX_DATA	SpiWriteAddressData((REG_WRITE | GPIO0Configuration), 0x14);	//set GPIO1 & GPIO2 to control the TRX switch	SpiWriteAddressData((REG_WRITE | GPIO1Configuration), 0x12);	SpiWriteAddressData((REG_WRITE | GPIO2Configuration), 0x15);	TR_LED_PIN = 1;}/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  +  + FUNCTION NAME:  RF_ENUM RxFIFOReset(void)  +  + DESCRIPTION:    reset the RX FIFO after receiving  +  + INPUT:			  None    +  + RETURN:         None  +  + NOTES:            +  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/RF_ENUM RxFIFOReset(void){	SpiWriteAddressData((REG_WRITE | OperatingFunctionControl2), 0x02);	SpiWriteAddressData((REG_WRITE | OperatingFunctionControl2), 0x00);	return RF_OK;}/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  +  + FUNCTION NAME:  RF_ENUM TxFIFOReset(void)  +  + DESCRIPTION:    reset the TX FIFO before transmitting  +  + INPUT:			  None    +  + RETURN:         None  +  + NOTES:            +  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/RF_ENUM TxFIFOReset(void){	SpiWriteAddressData((REG_WRITE | OperatingFunctionControl2), 0x01);	SpiWriteAddressData((REG_WRITE | OperatingFunctionControl2), 0x00);	return RF_OK;}/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  +  + FUNCTION NAME:  RF_ENUM set_dr(RF_SAMPLE_SETTINGS setting)  +  + DESCRIPTION:    set the datarate   +  + INPUT:			the number of the modem parameter settings    +  + RETURN:         None  +  + NOTES:            +  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/RF_ENUM set_dr(RF_SAMPLE_SETTINGS setting){	//set the registers according the selected RF settings	   RFSetRfParameters(setting);	return RF_OK;}/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  +  + FUNCTION NAME:  RF_ENUM set_pwr(uint8 pwr)  +  + DESCRIPTION:    set the TX power   +  + INPUT:			TXPower register content     +  + RETURN:         None  +  + NOTES:            +  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/RF_ENUM set_pwr(uint8 pwr){	SpiWriteAddressData((REG_WRITE | TXPower), (pwr|0x18));	return RF_OK;}/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  +  + FUNCTION NAME:  RF_ENUM set_frq(uint8 frq)  +  + DESCRIPTION:    set the TX frequency     +  + INPUT:			the number of the frequency channel    +  + RETURN:         None  +  + NOTES:            +  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/RF_ENUM set_frq(uint8 frq){	//set frequency	SpiWriteAddressData((REG_WRITE | NominalCarrierFrequency1), FreqSettings[1][rf_dr] );	SpiWriteAddressData((REG_WRITE | NominalCarrierFrequency0), FreqSettings[2][rf_dr] );	SpiWriteAddressData((REG_WRITE | FrequencyHoppingStepSize), FreqSettings[3][rf_dr] );	SpiWriteAddressData((REG_WRITE | FrequencyHoppingChannelSelect), frq);		return RF_OK;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -