📄 tea5757.lst
字号:
C51 COMPILER V7.50 TEA5757 05/12/2009 22:59:41 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE TEA5757
OBJECT MODULE PLACED IN TEA5757.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE TEA5757.C LARGE OPTIMIZE(7,SPEED) BROWSE DEBUG OBJECTEXTEND
line level source
1 /*以下是FM.h*/
2
3 /****************************************************************************/
4 /* MODULE: */
5 /*
6 FM.h
7 */
8 /****************************************************************************/
9 /*
10 * TCC Version 0.0
11 * Copyright (c) telechips, Inc.
12 * ALL RIGHTS RESERVED
13 */
14 /****************************************************************************/
15
16 //dddxxx
17 #include "tcc760.h"
*** WARNING C318 IN LINE 17 OF TEA5757.C: can't open file 'tcc760.h'
18
19 #ifdef RADIO_MCU
//#define fm_pwr_off HwGDATA_D &= ~(1 << 19) // Fm power off
//#define fm_pwr_on HwGDATA_D |= (1 << 19) // Fm power on
#define mcu_slaveaddr 0x54
#define COM_RADIO_STATE 0x40
#define COM_RADIO_FREQ 0x41
#define RADIO_SET_STERO 0x10
#define RADIO_SET_PWR 0x20
#define RADIO_SET_SENS_005 0x00
#define RADIO_SET_SENS_010 0x80
#define RADIO_SET_SENS_030 0x40
#define RADIO_SET_SENS_150 0xc0
#define RADIO_AUTOSCAN_UP 0x01
#define RADIO_AUTOSCAN_DOWN 0x02
#define RADIO_MANUSCAN_UP 0x04
#define RADIO_MANUSCAN_DOWN 0x08
#define RADIO_FM 0x00
#define RADIO_AM 0x01
#define RADIODELAY 100
enum{
PRESET_MODE_OFF,
PRESET_MODE_ON,
NO_MODE,
MANUAL_ADD_CH
};
#define off 0
#define on 1
#define up 1
#define down 0
#define MAX_PRESET_NUM 20
C51 COMPILER V7.50 TEA5757 05/12/2009 22:59:41 PAGE 2
typedef struct BANKOFRADIO {
unsigned char IsPreset ;
unsigned char IsStereo;
unsigned short LastUseFMHz;
unsigned short Presetbank[MAX_PRESET_NUM] ;
unsigned char LastUsePresetNum;
unsigned char LastBand;
} FMRADIO;
extern unsigned int fm_khz;
extern FMRADIO RadioData;
extern void delay720(unsigned int count);
extern void fm_init(void);
extern void fmw_stand_by_rtn(unsigned char onoff);
extern void fmw_stereo_rtn(unsigned char onoff);
extern void mcu_send_state(void);
extern unsigned char mcu_read_radio_state(void);
extern unsigned int mcu_read_radio_freq(void);
extern void Radio_manual_scan(unsigned char dir);
extern void Radio_auto_scan(unsigned char dir);
#else
79 #define fm_slaveaddr 0xc0 // FM modules slave addr
80 #define fm_pwr_off HwGDATA_A |= (1 << 13); // Fm power off
81 #define fm_pwr_on HwGDATA_A &= ~(1 << 13); // Fm power on
82
83 enum{
84 PRESET_MODE_OFF,
85 PRESET_MODE_ON,
86 NO_MODE,
87 MANUAL_ADD_CH
88 };
89
90 #define off 0
91 #define on 1
92 #define up 1
93 #define down 0
94 #define all_level 0
95 #define lo_level 1
96 #define mid_level 2
97 #define hi_level 3
98 #define japan 1 // Japan band
99 #define us_eu 0 // US/EU band
100 #define xtal_32768 1 // set the x-tal to 32.768 KHz
101 #define xtal_13m 0 // set the x-tal to 13 MHz
102 #define ref_65_en 1 // 6.5 MHz reference for PLL enabled
103 #define ref_65_dis 0 // 6.5 MHz reference not enabled
104 #define deemph75 1 // deemphasis time constant is 75 us
105 #define deemph50 0 // deemphasis time constant is 50 us
106
107 #define hi_side 1 // FM module's high-side injcetion
108 #define lo_side 0 // FM module's low-side injection
109
110
111 // when you do not use the autonomous search mode of the FM module, set the scan level and step
112 #define scan_level 6 // the available values are 0 ~ 15
113 #define scan_step 100 // KHz unit
114
115 extern unsigned int fm_khz;
116
C51 COMPILER V7.50 TEA5757 05/12/2009 22:59:41 PAGE 3
117 extern void delay720(unsigned int count);
118 extern void fm_init(void);
119 extern void LCD_DisplayChannelForFM(int InputHz);
120 extern void fmw_stand_by_rtn(unsigned char onoff);
121 extern unsigned char fm_wr_rtn(unsigned char *ptr);
122
123 // Struct for Radio data
124
125 #define MAX_PRESET_NUM 20
126
127 typedef struct BANKOFRADIO {
128 unsigned char IsPreset ;
129 unsigned char IsStereo;
130 unsigned short LastUseFMHz;
131 unsigned short Presetbank[MAX_PRESET_NUM] ;
132 unsigned char LastUsePresetNum;
133 } FMRADIO;
134
135 extern FMRADIO RadioData;
136 extern unsigned char fm_wr_byte[5];
137 extern unsigned char fm_hilo_optimal(unsigned int fm_freq);
138 extern void fmw_pll_rtn(unsigned char hilo, unsigned int fm_freq);
139 extern void fmw_all_mute_rtn(unsigned char onoff);
140 extern unsigned char fm_wr_rtn(unsigned char *ptr);
141 extern void fmw_stand_by_rtn(unsigned char onoff);
142 extern void fmw_stereo_rtn(unsigned char onoff);
143 extern void delay720(unsigned int count);
144 extern unsigned int fm_auto_scan_detect(unsigned char dir);
145 extern unsigned char fm_auto_scan(unsigned char dir);
146 extern void fm_manual_scan(unsigned char dir);
147 #endif
148
149 /****************************************************************************/
150 /* MODULE: */
151 /* FM.c
152
153 */
154 /****************************************************************************/
155 /*
156 * TCC Version 0.0
157 * Copyright (c) telechips, Inc.
158 * ALL RIGHTS RESERVED
159 */
160 /****************************************************************************/
161
162 #include "main.h"
*** WARNING C318 IN LINE 162 OF TEA5757.C: can't open file 'main.h'
163 #include "fm/FM.h"
*** WARNING C318 IN LINE 163 OF TEA5757.C: can't open file 'fm/FM.h'
164 #include "kernel/telechips.h"
*** WARNING C318 IN LINE 164 OF TEA5757.C: can't open file 'kernel/telechips.h'
165 #include "i2c/i2c.h"
*** WARNING C318 IN LINE 165 OF TEA5757.C: can't open file 'i2c/i2c.h'
166
167 FMRADIO RadioData;
168
169 #ifdef RADIO_INCLUDE
#ifdef RADIO_MCU
unsigned char radio_state = RADIO_SET_STERO|RADIO_SET_SENS_150;
unsigned int radio_freq ;
unsigned char command_buff[2];
unsigned char receive_data[2];
C51 COMPILER V7.50 TEA5757 05/12/2009 22:59:41 PAGE 4
unsigned int fm_khz;
unsigned char radio_pwron_counter=0;
void delay720(unsigned int count)
{
for(;count>0;count--) ;
// 1:0.84, 5:1.36, 10:1.96, 20:3.20, 30:4.48, 60:8.04, 80:10.6, 90:11.6, 100:13
}
void fmw_stand_by_rtn(unsigned char onoff) //radio power onoff
{
// if(onoff)
// fm_pwr_on;
// else
// fm_pwr_off;
if(onoff)
{
radio_state &= ~RADIO_SET_PWR;
radio_pwron_counter=1;
}
else radio_state |= RADIO_SET_PWR;
mcu_send_state();
}
void fmw_stereo_rtn(unsigned char onoff)
{
//radio_state &= 0xcf;
//if(onoff)
// radio_state |= RADIO_SET_STERO;
//else radio_state |= RADIO_SET_MONO;
if(onoff)
radio_state |= RADIO_SET_STERO;
else radio_state &= ~RADIO_SET_STERO;
mcu_send_state();
}
unsigned char mcu_rd_rtn(unsigned char subadr,unsigned char *ptr, unsigned char bytes)
{
return (unsigned char)(i2c_read((unsigned int)I2C_FM, (unsigned char)mcu_slaveaddr, subadr, ptr, bytes));
}
unsigned char mcu_wr_rtn(unsigned char subadr,unsigned char *ptr, unsigned char bytes)
{
return (unsigned char)(i2c_write((unsigned int)I2C_FM, (unsigned char)mcu_slaveaddr, subadr, ptr, bytes))
-;
}
void mcu_set_state(unsigned char *com)
{
mcu_wr_rtn(COM_RADIO_STATE,com,1);
}
void mcu_set_freq(unsigned char *com)
{
mcu_wr_rtn(COM_RADIO_FREQ,com,2);
}
void mcu_read_state(unsigned char *com)
{
mcu_rd_rtn(COM_RADIO_STATE,com,1);
C51 COMPILER V7.50 TEA5757 05/12/2009 22:59:41 PAGE 5
}
void mcu_read_freq(unsigned char *com)
{
mcu_rd_rtn(COM_RADIO_FREQ,com,2);
}
void mcu_send_state(void)
{
command_buff[0] = radio_state;
mcu_set_state(command_buff);
}
void mcu_manuscan_up(void)
{
radio_state &= 0xf0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -