Beispiel #1
0
u32 TxLoad(u8 id)
{
	char msg[16];

	//利用CYRF产生动态ID,每次上电仅产生一次
	if(TxRndId==0)
	{
		srand(AdcGetValue(0)+AdcGetValue(1)+AdcGetValue(2)+AdcGetValue(3)+AdcGetValue(4));

		CYRF_Reset();
		CYRF_GetMfgData(CYRF_MfgId);
		TxRndId = ((u32) ( rand() ^ CYRF_MfgId[0] ^ CYRF_MfgId[3]) << 16)
				 | ((u32)( rand() ^ CYRF_MfgId[1] ^ CYRF_MfgId[4]) << 8)
				 | ((u32)( rand() ^ CYRF_MfgId[2] ^ CYRF_MfgId[5]) << 0);
		TxRndId = TxRndId % 1000000;
	}

	if(id>=TX_MOD_NUM)
	{
		PageAlertModel("发射模块内部错误!",0);
		return 0;
	}

	if(id!=TxPrevId)
	{
		strcpy(msg,PageOptionProtocol[id]);
		TxModule[TxPrevId].Close();
		if(TxModule[id].Open())
		{
			strcat(msg,"加载成功!");
			PageAlertModel(id?msg:"RF已关闭!",500);
			TxPrevId=id;
			return 1;
		}
		else
		{
			strcat(msg,"加载失败!");
			PageAlertModel(id?msg:"RF关闭失败!",0);
			TxPrevId=0;
			return 0;
		}
	}

	return 2;
}
int main(void)
{
	int counter = 0;
	//u16 rx_value = 0x42;
	u8 cyrfmfg_id[7];

	clock_setup();
	gpio_setup();
	spi_setup();

	CYRF_Reset();
#if SEMIHOSTING
	    initialise_monitor_handles();
#endif

	cyrfmfg_id[0] = 0;
	cyrfmfg_id[1] = 0;
	cyrfmfg_id[2] = 0;
	cyrfmfg_id[3] = 0;
	cyrfmfg_id[4] = 0;
	cyrfmfg_id[5] = 0;

	/* Blink the LED (PA8) on the board with every transmitted byte. */
	while (1) {
		/* LED on/off */
		gpio_toggle(GPIOB, GPIO10);

		/* printf the value that SPI should send */
		printf("Counter: %i  SPI receiving mfgid: ... ", counter);
		/* blocking send of the byte out SPI1 */
		CYRF_GetMfgData(cyrfmfg_id);
		cyrfmfg_id[6]=0;
		/* printf the byte just received */
		printf("    SPI Received Byte: '0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X'\r\n", cyrfmfg_id[0], cyrfmfg_id[1], cyrfmfg_id[2], cyrfmfg_id[3], cyrfmfg_id[4], cyrfmfg_id[5]);

		counter++;
		
	}

	return 0;
}
Beispiel #3
0
void Banner()
{
    CYRF_Reset();
    u8 Power = CYRF_MaxPower();
    u8 mfgdata[6];
    u8 tmp[12];
    TxName(tmp, 12);
    printf("\nDeviation\n");
    /* Check CPU type */

    printf("BootLoader    : '%s'\n",tmp);
    printf("Power         : '%s'\n",Power == CYRF_PWR_100MW ? "100mW" : "10mW" );
    printf("SPI Flash     : '%X'\n",(unsigned int)SPIFlash_ReadID());
    CYRF_GetMfgData(mfgdata);
    printf("CYRF Mfg Data : '%02X %02X %02X %02X %02X %02X'\n",
            mfgdata[0],
            mfgdata[1],
            mfgdata[2],
            mfgdata[3],
            mfgdata[4],
            mfgdata[5]);

}