📄 tea5767.c
字号:
#include <pic18.h>
#include "../include/Device.h"
#ifdef INCLUDE_TEA5767
void FM5767_WRITE_I2C( void )
{
unsigned char i;
IIC_BYTE_START();
for ( i = 0; i < 6; i++ ) {
IIC_BYTE_WRITE( sBufferWrite[ i ] );
IIC_BYTE_ACK();
}
IIC_BYTE_STOP();
}
void FM5767_WRITE_3WIRE( void )
{
unsigned char i;
FM_I2C_CLK = 0;
FM_I2C_DATA = 0;
DELAY_1US(10);
FM_RW = 1;
DELAY_1US(10);
FM_RW = 0;
DELAY_1US(5);
FM_RW = 1;
DELAY_1US(5);
for ( i = 1; i < 6; i++ ) {
IIC_BYTE_WRITE( sBufferWrite[ i ] );
DELAY_1US(10);
}
FM_RW = 1;
DELAY_1US(10);
FM_RW = 0;
DELAY_1US(5);
FM_RW = 1;
DELAY_1US(5);
}
void FM5767_BAND( void )
{
unsigned char sBuffer[ 2 ];
MakePLL( sBuffer, fm_frequency );
sBufferWrite[ 0 ] = 0xC0;
sBufferWrite[ 1 ] = sBuffer[ 0 ];
sBufferWrite[ 2 ] = sBuffer[ 1 ];
if ( fm_band_mode == FM_BAND_USA ) {
sBufferWrite[ 3 ] = 0x50;
sBufferWrite[ 4 ] = 0x11;
sBufferWrite[ 5 ] = 0xC0;
}
else {
sBufferWrite[ 3 ] = 0x40;
sBufferWrite[ 4 ] = 0x31;
sBufferWrite[ 5 ] = 0x80;
}
if ( fm_mo_st == FM_MONO )
sBufferWrite[ 3 ] |= 0x08;
if ( fm_hcc )
sBufferWrite[ 4 ] |= 0x04;
if ( fm_snc )
sBufferWrite[ 4 ] |= 0x02;
}
void FM5767_READ( void )
{
unsigned char i;
sBufferRead[ 0 ] = 0xC1;
sBufferRead[ 1 ] = 0x00;
sBufferRead[ 2 ] = 0x00;
sBufferRead[ 3 ] = 0x00;
sBufferRead[ 4 ] = 0x00;
sBufferRead[ 5 ] = 0x00;
if ( ucChipInterface == CHIP_IF_I2C ) {
IIC_BYTE_START();
IIC_BYTE_WRITE( 0xC1 );
IIC_BYTE_ACK();
for ( i = 1; i < 6; i++ ) {
sBufferRead[i] = IIC_BYTE_READ();
IIC_BYTE_ACK();
}
IIC_BYTE_STOP();
}
else {
FM_RW = 0;
DELAY_1US( 10 );
FM_RW = 1;
DELAY_1US( 5 );
FM_RW = 0;
DELAY_1US( 5 );
for ( i = 1; i < 6; i++ ) {
sBufferRead[ i ] = IIC_BYTE_READ();
}
}
}
void TEA5767_INIT( void )
{
TX_ON = 0;
FM_ON = 1;
FM_EN = 1;
FM_PLL_WRITE();
DELAY_1MS( 100 );
FM_PLL_WRITE();
DELAY_1MS( 100 );
FM_PLL_WRITE();
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -