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

📄 cs9255.c

📁 关于计频IC cs9255的驱动代码
💻 C
字号:
#include <CS9255.h>
#include <intrins.h>
#include <Api_task.h>
#include <I2c.h>
#include <Timer.h>

#define CS9255_Delay()    _nop_();_nop_();_nop_();_nop_();_nop_()
	extern Disp    	  DISP;
	extern Sys		SYS;
	UINT8  FreqTemp;
void InitDisp()
{
  
    	//CreateTimer(1000, Lcd_Write_All, TRUE);
    	CreateTimer(400,Disp_ReadFreq, TRUE);
	
}

/**
功能:初始化CS9255 liang 6.2
**/
void CS9255_Init(){
		UINT8 i;
	if(SYS.RadioBand)
		{
		CS9255_Send(0x1C);//FM
		}
	else
		{
		CS9255_Send(0x1E);//AM
		}
	for(i=0;i<3;i++)
		{
		FreqTemp=CS9255_Read_8bit();
		}
}
/**
功能:给CS9255写命令
**/
void CS9255_Send(UINT8 senddata){
	UINT8 i;
	CS9255_DATA_IN();
	CS9255_CLK1();
	CS9255_DATA0();

	for(i=0;i<5;i++)
		{
		CS9255_CLK0();
		if(senddata & 0x10)
			{
			CS9255_DATA1();
			}
		else
			{
			CS9255_DATA0();
			}
		CS9255_Delay();
		CS9255_Delay();
		CS9255_CLK1();
		CS9255_Delay();
		CS9255_Delay();
		senddata<<=1;
		}
}

/**
功能:从CS9255读数据,每次只读8位
**/
UINT8 CS9255_Read_8bit(void){
	UINT8 readdata,i;
	//CS9255_DATA_OUT();
	for( i=0;i<8;i++)
		{
		readdata=readdata << 1;
		CS9255_CLK0();
		if(sfr_GPIOA_DATA & 0x01)
			{
			readdata |=0x01;
			}
		else
			{
			readdata &=0xFE;
			}
		CS9255_Delay();
		CS9255_Delay();
		CS9255_CLK1();
		CS9255_Delay();
		CS9255_Delay();
		
		}
	return readdata;
	}
/**
功能:读频率
入口参数:选择的BAND
**/
void  CS9255FMAM_DATA(){
	UINT8 i,val;
//	UINT32 ReadTemp;
	if(SYS.RadioBand)
		{
		CS9255_Send(0x18);//FM
		}
	else
		{
		CS9255_Send(0x1A);//AM
		}
	CS9255_DATA_OUT();
		for( i=0;i<3;i++)
			{
			
			val=CS9255_Read_8bit();
			DISP.CurFrq[i]=val;
			
			}
	}

⌨️ 快捷键说明

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