?? si47xx_demo.c
字號:
/**************************************
Si47XX RX and TX demo example
***************************************/
#include "Si47xx_drv.h"
/**************************************
Si47XX_TX_DEMO()
***************************************/
T_ERROR_OP Si47XX_TX_DEMO(void)
{
unsigned char Si47XX_REV_data[9];
if(Si47XX_Power_Up(FM_TRNSMITTER) != OK) return ERROR;
if(Si47XX_Get_Rev(&Si47XX_REV_data[0], 9) != OK) return ERROR; //read REV data here if need {0x80,0x0A,0x30,0x43,0x00,0x00,0x30,0x42,0x41} for Si4710 firmware
//Si47XX_Set_Property_REFCLK_FREQ(); //default is for 32KHz RCLK
//Si47XX_Set_Property_RCLK_PRESCALE(); //default is for 32KHz RCLK
if(Si47XX_Set_Property_INPUT_LEVEL() != OK) return ERROR; //set input level
if(Si47XX_Set_Property_TX_PREEMPHASIS() != OK) return ERROR; //set tx preemphasis
if(Si47XX_Set_Property_TX_ACOMP_ENABLE() != OK) return ERROR; //set tx audio dynamic control enable
//You also can set other Property here
if(Si47XX_Set_TX_Power(115) != OK) return ERROR; //set tx power to 115dBuV
if(Si47XX_Set_TX_Frequency(10000) != OK) return ERROR; //set tx freq to 100.00MHz
return OK;
}
/**************************************
Si47XX_TX_RPS_DEMO()
***************************************/
T_ERROR_OP Si47XX_TX_RPS_DEMO(void)
{
unsigned char Si47XX_REV_data[9];
unsigned short Min_RNL_Channel;
if(Si47XX_Power_Up(FM_TRNSMITTER) != OK) return ERROR;
if(Si47XX_Get_Rev(&Si47XX_REV_data[0], 9) != OK) return ERROR; //read REV data here if need {0x80,0x0A,0x30,0x43,0x00,0x00,0x30,0x42,0x41} for Si4710 firmware
//Si47XX_Set_Property_REFCLK_FREQ(); //default is for 32KHz RCLK
//Si47XX_Set_Property_RCLK_PRESCALE(); //default is for 32KHz RCLK
if(Si47XX_Set_Property_INPUT_LEVEL() != OK) return ERROR; //set input level
if(Si47XX_Set_Property_TX_PREEMPHASIS() != OK) return ERROR; //set tx preemphasis
if(Si47XX_Set_Property_TX_ACOMP_ENABLE() != OK) return ERROR; //set tx audio dynamic control enable
//You also can set other Property here
if(Si47XX_Min_RNL_Channel_RPS(8750,10800,&Min_RNL_Channel) != OK) return ERROR; //find the min RNL channel
if(Si47XX_Set_TX_Power(115) != OK) return ERROR; //set tx power to 115dBuV
if(Si47XX_Set_TX_Frequency(Min_RNL_Channel) != OK) return ERROR; //set tx freq to min RNL channel
return OK;
}
/**************************************
Si47XX_FM_Tune_DEMO()
***************************************/
T_ERROR_OP Si47XX_FM_Tune_DEMO(void)
{
unsigned char Si47XX_REV_data[9];
if(Si47XX_Power_Up(FM_RECEIVER) != OK) return ERROR;
if(Si47XX_Get_Rev(&Si47XX_REV_data[0], 9) != OK) return ERROR; //read REV data here if need {0x80,0x14,0x31,0x42,0x00,0x00,0x31,0x42,0x41} for Si4720/1B firmware
//Si47XX_Set_Property_REFCLK_FREQ(); //default is for 32KHz RCLK
//Si47XX_Set_Property_RCLK_PRESCALE(); //default is for 32KHz RCLK
if(Si47XX_Set_Property_FM_DEEMPHASIS() != OK) return ERROR; //set deemphasis
//You also can set other Property here
if(Si47XX_Set_FM_Frequency(10230) != OK) return ERROR; //set to 102.3MHz
return OK;
}
/**************************************
Si47XX_FM_Seek_DEMO()
***************************************/
T_ERROR_OP Si47XX_FM_Seek_DEMO(void)
{
unsigned char Si47XX_REV_data[9];
unsigned char SeekFail;
unsigned short Si47XX_fm_seek_channel_freq;
if(Si47XX_Power_Up(FM_RECEIVER) != OK) return ERROR;
if(Si47XX_Get_Rev(&Si47XX_REV_data[0], 9) != OK) return ERROR; //read REV data here if need {0x80,0x14,0x31,0x42,0x00,0x00,0x31,0x42,0x41} for Si4720/1B firmware
//Si47XX_Set_Property_REFCLK_FREQ(); //default is for 32KHz RCLK
//Si47XX_Set_Property_RCLK_PRESCALE(); //default is for 32KHz RCLK
//Si47XX_Set_Property_Seek_Space(); //default is for seek space 100KHz
if(Si47XX_Set_Property_FM_DEEMPHASIS() != OK) return ERROR; //set deemphasis
if(Si47XX_Set_Property_FM_SNR_Threshold() != OK) return ERROR; //set seek threshold SNR
if(Si47XX_Set_Property_FM_RSSI_Threshold() != OK) return ERROR; //set seek threshold RSSI
//You also can set other Property here
if(Si47XX_FM_Seek(SEEKUP_WRAP, &Si47XX_fm_seek_channel_freq, &SeekFail) != OK) return ERROR; //store the channel freq in Si47XX_fm_seek_channel_freq after one seek
return OK;
}
/**************************************
Si47XX_AM_Tune_DEMO()
***************************************/
T_ERROR_OP Si47XX_AM_Tune_DEMO(void)
{
unsigned char Si47XX_REV_data[9];
if(Si47XX_Power_Up(AM_RECEIVER) != OK) return ERROR;
if(Si47XX_Get_Rev(&Si47XX_REV_data[0], 9) != OK) return ERROR; //read REV data here if need {0x80,0x1E,0x31,0x42,0x00,0x00,0x31,0x42,0x41} for Si4730/1B firmware
//Si47XX_Set_Property_REFCLK_FREQ(); //default is for 32KHz RCLK
//Si47XX_Set_Property_RCLK_PRESCALE(); //default is for 32KHz RCLK
if(Si47XX_Set_Property_AM_DEEMPHASIS() != OK) return ERROR;
//You also can set other Property here
if(Si47XX_Set_AM_Frequency(1000) != OK) return ERROR; //set to 1000KHz
return OK;
}
/**************************************
Si47XX_AM_Seek_DEMO()
***************************************/
T_ERROR_OP Si47XX_AM_Seek_DEMO(void)
{
unsigned char Si47XX_REV_data[9];
unsigned char SeekFail;
unsigned short Si47XX_am_seek_channel_freq;
if(Si47XX_Power_Up(AM_RECEIVER) != OK) return ERROR;
if(Si47XX_Get_Rev(&Si47XX_REV_data[0], 9) != OK) return ERROR; //read REV data here if need {0x80,0x1E,0x31,0x42,0x00,0x00,0x31,0x42,0x41} for Si4730/1B firmware
//Si47XX_Set_Property_REFCLK_FREQ(); //default is for 32KHz RCLK
//Si47XX_Set_Property_RCLK_PRESCALE(); //default is for 32KHz RCLK
if(Si47XX_Set_Property_AM_Seek_Space() != OK) return ERROR; //set seek space to 9KHz
if(Si47XX_Set_Property_AM_DEEMPHASIS() != OK) return ERROR; //set deemphasis
//if(Si47XX_Set_Property_AM_SNR_Threshold() != OK) return ERROR; //set seek threshold SNR,default is 5dB
//if(Si47XX_Set_Property_AM_RSSI_Threshold() != OK) return ERROR; //set seek threshold RSSI, default is 25dBuV
//You also can set other Property here
if(Si47XX_AM_Seek(SEEKUP_WRAP, &Si47XX_am_seek_channel_freq, &SeekFail) != OK) return ERROR;
return OK;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -