📄 fq12xx.h
字号:
//fq12xx driver
#define FQ12XX_RF_ADD 0xc0
#define FQ12XX_IF_ADD 0x86
#define FQ12XX_IF 4575 // 45.75MHZ
#define MIN_IPF 4800 // 48 MHZ
#define MAX_IPF 140000 // 1400 MHZ
#define MAX_CH_NO 30
unsigned char pdivider_lo;
unsigned char pdivider_hi;
unsigned long in_freq = 18425; // init frequency = 184.25MHZ
unsigned long lo_freq;
unsigned char fine_value = 20;
/*
// frequency table
unsigned int code ch_tab[100] = {
4955, 5755, 6555, 7705, 8505,
11205,12005,12805,13605,14405,
15205,16005,16805,17605,18405,
19205,20005,20805,21605,22405,
23205,24005,24805,25605,26405,
27205,28005,28805,29605,30405,
31205,32005,32805,33605,34405,
35205,36005,36805,37605,38405,
39205,40005,40805,41605,42405,
43205,44005,44805,45605,46305,
47105,47905,48705,49505,50305,
51105,51905,52705,53505,54305,
55105,55905,60705,61505,62305,
63105,63905,64705,65505,66305,
67105,67905,68705,69505,70305,
71105,71905,72705,73505,74305,
75105,75905,76705,77505,78305,
79105,79905,80705,81505,82305,
83105,83905,84705,85505,86305
}
*/
void set_fq12xx_lo(void)
{
lo_freq = in_freq + fine_value*5 - 100;
}
void wr_fq12xx_rf(void)
{
lo_freq = in_freq + FQ12XX_IF;
lo_freq = lo_freq + fine_value*5 - 100;
lo_freq = lo_freq*16/100;
pdivider_lo = lo_freq&0xff;
pdivider_hi = ((lo_freq>>8)&0xff);
i2c_data = pdivider_lo;
i2c_write(FQ12XX_RF_ADD,pdivider_hi);
if(in_freq < 15800)
{
i2c_data = 0x41;
i2c_write(FQ12XX_RF_ADD,0x86);
}
else if(in_freq < 44200)
{
i2c_data = 0x42;
i2c_write(FQ12XX_RF_ADD,0x86);
}
else
{
i2c_data = 0x44;
i2c_write(FQ12XX_RF_ADD,0x86);
}
i2c_data = 0xa0;
i2c_write_without_subaddr(FQ12XX_RF_ADD);
}
void wr_fq12xx_if(void)
{
i2c_data = 0x56;
i2c_write(FQ12XX_IF_ADD,0x00);
i2c_data = 0x30;
i2c_write(FQ12XX_IF_ADD,0x01);
i2c_data = 0x44;
i2c_write(FQ12XX_IF_ADD,0x02);
}
void rd_fq12xx_if(void)
{
i2c_data = 0xff;
i2c_read_without_subaddr(FQ12XX_IF_ADD);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -