📄 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 + -