📄 tda7540.c
字号:
/*************************************************************************************************/
/*函数原形:void Close_IFCounter(void) */
/*功 能: */
/*参 数: */
/*************************************************************************************************/
void Close_IFCounter(void)
{
Write_TDATDA7540(0,0x56);
Write_TDATDA7540(5,0x91);
}
/*************************************************************************************************/
/*函数原形:void Open_IFCounter_AM(void) */
/*功 能: */
/*参 数: */
/*************************************************************************************************/
void Open_IFCounter_AM(void)
{
Write_TDATDA7540(7,0x01);
Write_TDATDA7540(5,0xea);
}
/*************************************************************************************************/
/*函数原形:void Close_IFCounter_AM(void) */
/*功 能: */
/*参 数: */
/*************************************************************************************************/
void Close_IFCounter_AM(void)
{
Write_TDATDA7540(7,0x00);
Write_TDATDA7540(5,0xa2);
}
/*************************************************************************************************/
/*函数原形:bit Read_IFCounter(void) */
/*功 能:自动收台停台 */
/*参 数:1:停台,0:跳台 */
/*************************************************************************************************/
U8 Read_IFCounter(void)
{
U16 i;
U16 err_data = 0;
U16 sen;
// SSTOP = 1;
/*
for(i=0;i<1000;i++)
{
if(!SSTOP)
{
Close_IFCounter();
return 0;
}
}
Close_IFCounter();
return 1;
*/
for(i=0;i<1000;i++)
{
Delay_us(200);
if(SSTOP == 0)err_data++;
}
// if(car_CurrentMode == 3)
sen = 1;
// else
// sen = 10;
if(err_data>sen)
{
Close_IFCounter();
return 0;
}
else
{
Close_IFCounter();
return 1;
}
}
/*************************************************************************************************/
/*函数原形:bit Read_IFCounter_AM(void) */
/*功 能:自动收台停台 */
/*参 数:1:停台,0:跳台 */
/*************************************************************************************************/
U8 Read_IFCounter_AM(void)
{
U16 i;
U16 err_data = 0;
// SSTOP = 1;
/*
for(i=0;i<1000;i++)
{
if(!SSTOP)
{
Close_IFCounter();
return 0;
}
}
Close_IFCounter();
return 1;
*/
for(i=0;i<1000;i++)
{
Delay_us(200);
if(!SSTOP)err_data++;
}
if(err_data>SENSITVE)
{
Close_IFCounter_AM();
return 0;
}
else
{
Close_IFCounter_AM();
return 1;
}
}
/*************************************************************************************************/
/*函数原形:void AutoScan_FM(void) */
/*功 能:自动搜台 */
/*参 数: */
/*************************************************************************************************/
//U16 Auto_Step_Val[] = {0,0,0,0,0,0,0,0,0,0,
// 0,0,0,0,0,0,0,0,0,0};
/*
void AutoScan_FM(void)
{ U8 i;
U8 Auto_Step_Index = 0;
U16 Fre;
// Fre = FM_MIN; //自动搜台测试
Fre = 875; //自动搜台测试
while (Fre < 1080) //从低频向高频搜所有台并记录(fm)
{
Fre++;
Select_Fm(Fre);
//fb_printtemp(Fre,100);
Open_IFCounter();
Delay_us(30000);
if(Read_IFCounter())
{
//Auto_Step_Val[Auto_Step_Index++]=Fre;
Fre = Fre;
//fb_printtemp(Fre,200);
for(i=0;i<100;i++)
Delay_us(30000);
for(i=0;i<100;i++)
Delay_us(30000);
}
}
}
*/
/*************************************************************************************************/
/*函数原形:void AutoScan_AM(void) */
/*功 能:自动搜台 */
/*参 数: */
/*************************************************************************************************/
//U16 Auto_Step_Val1[] = {0,0,0,0,0,0,0,0};
/*
void AutoScan_AM(void)
{U8 i;
U8 Auto_Step_Index = 0;
U16 Fre;
Fre = 522; //自动搜台测试
while (Fre < 1620) //从低频向高频搜所有台并记录(am)
{
Fre=Fre+9;
Select_Am(Fre);
Open_IFCounter_AM();
//fb_printtemp(Fre,300);
Delay_us(500);
if(Read_IFCounter_AM())
{
//Auto_Step_Val1[Auto_Step_Index++]=Fre;
Fre = Fre;
//fb_printtemp(Fre,400);
for(i=0;i<100;i++)
Delay_us(30000);
for(i=0;i<100;i++)
Delay_us(30000);
}
}
}
*/
/*************************************************************************************************/
/*函数原形:U16 AutoScan_Step_FM(U8 UpDowm,U16 Fre) */
/*功 能:半自动搜台 */
/*参 数:UpDowm 0:向下,1:向上 Fre:初始频率 */
/*************************************************************************************************/
U16 AutoScan_Step_FM(U8 UpDowm,U16 *Fre)
{
if(UpDowm)
{
*Fre = *Fre + 1;
if(*Fre < 875)
*Fre = 875;
if(*Fre >= 1080)
*Fre = 875;
Select_Fm(*Fre);
Open_IFCounter();
Delay_us(40000);
if(Read_IFCounter())
return(*Fre);
}
return 0;
}
/*************************************************************************************************/
/*函数原形:void AutoScan_Step_AM(U8 UpDowm) */
/*功 能:半自动搜台 */
/*参 数:UpDowm 0:向下 1:向上 */
/*************************************************************************************************/
U16 AutoScan_Step_AM(U8 UpDowm,U16 *Fre)
{U8 i;
if(UpDowm)
{
*Fre = *Fre + 9;
if(*Fre < 522)
*Fre = 522;
if(*Fre >= 1620)
*Fre = 1620;
Select_Am(*Fre);
Open_IFCounter_AM();
for(i=0;i<100;i++)
Delay_us(900);
if(Read_IFCounter_AM())return(*Fre);
}
return(0);
}
/*************************************************************************************************/
/*函数原形:U16 Step_FM(U8 UpDowm,U16 Fre) */
/*功 能:单步搜台 */
/*参 数:UpDowm 0:向下,1:向上 Fre:初始频率 */
/*************************************************************************************************/
U16 Step_FM(U8 UpDowm,U16 Fre)
{
if(UpDowm)
{
Fre++;
if(Fre>1080)Fre=875;
if(Fre<875)Fre=1080;
Select_Fm(Fre);
}
else
{
Fre--;
if(Fre>1080)Fre=875;
if(Fre<875)Fre=1080;
Select_Fm(Fre);
}
return(Fre);
}
/*************************************************************************************************/
/*函数原形:U16 Step_AM(U8 UpDowm,U16 Fre) */
/*功 能:单步搜台 */
/*参 数:UpDowm 0:向下,1:向上 Fre:初始频率 */
/*************************************************************************************************/
U16 Step_AM(U8 UpDowm,U16 Fre)
{
if(UpDowm)
{
Fre=Fre+9;
if(Fre>1620)Fre=522;
if(Fre<522)Fre=1620;
Select_Am(Fre);
}
else
{
Fre=Fre-9;
if(Fre>1620)Fre=522;
if(Fre<522)Fre=1620;
Select_Am(Fre);
}
return(Fre);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -