FmM5181.h
资源名称:SDK_M5661.rar [点击查看]
上传用户:hjhsjcl
上传日期:2020-09-25
资源大小:11378k
文件大小:4k
源码类别:
压缩解压
开发平台:
C++ Builder
- /*==========================================================================
- Copyright (c) 2004 ALi Corporation. All Rights Reserved
- Target : FM
- Applying Source File : FmM5181.c
- content:
- History:
- Modified by Dennis Shih 2006/01/16
- ==========================================================================*/
- #ifdef _FM_M5181_H_
- #define EXTERN
- #else
- #define EXTERN extern
- #endif
- #define _32KHz_ // M5181 use the oscillator be a clock source.
- #define USE_I2C 1
- #define VCO_DELAY_TIME 30 //VCO Delay Time >= 25
- #define I2C_WRITE_SPEED 2 // I2C Writed Delay Control >=2
- #define FM_POWERON_DELAY 20 // Power On Reset Delay Time for Fm
- #define PILOT_TONE 7 // Seting the CW(21,1) Register CW(21,1) = 0xh (DREF);
- #define VOLUME_LEVEL 3 //Set Volume level
- //M5181 define
- /* General propose constant */
- #define PRESET_IF 140 /// Preset IF: 140 khz
- #define FM_TUNER_GRID 10 //Dennis060517#1
- #define SET_FREQ_FAIL 0xFF
- #define RSSI_CHECK_FAIL 2
- #define M5181 96 /// Device ID of M5181 = 96
- #define OP_WRITE 0 /// Write to M5181
- #define OP_READ 1 /// Read from M5181
- #define M5181_WRITE 192
- #define M5181_READ 193
- #define LO_INJECTION 0
- #define HI_INJECTION 1
- #define FM_STEP_AWAY_SIZE 40 //Dennis060517#1
- #define IF_MEASURE_COUNT_EXP 3 /// 2^3=8
- //Dennis060517#1 start
- #define PilotThreshold 3 ///Auto Search Pilot TilotThreshold
- #define UpLimit 31 ///30 //Auto Search IF Count Upper Limit
- #define LowerLimit 31 //Auto Search IF Count Lower Limit
- //Dennis060517#1 end
- #define MeanLevel 274 //Auto Search IF Mean Level
- #define CriterienHigh TRUE
- #ifdef _32KHz_
- #define REF_CLK_32K
- //#define REF_CLK_26M
- #define PRESET_IF_CNT 274 /// 140000 * 64 / 32768 = 273.4375
- #define PRESET_IF_DELTA 30
- #define PRESET_IF_SWING 40
- #define IF_CONVERT_FACTOR 512 /// 32768 / 64 = 512
- #else
- // #define REF_CLK_32K
- #define REF_CLK_26M
- #define PRESET_IF_CNT 265 /// 140000 * 49152 / 26000000 = 264.66
- #define PRESET_IF_DELTA 29
- #define PRESET_IF_SWING 39
- #define IF_CONVERT_FACTOR 529 /// 26000000 / 49152 = 529
- #endif //_32KHz_
- /* M5181 Control Word */
- #define CW(_A,_B) (const)(BYTE)((_A << 1) + _B)
- #define POWER_OFF_COMMAND_COUNT 10
- typedef struct {
- BYTE addr;
- BYTE value;
- } ctrl_word_setting;
- typedef struct {
- BYTE addr;
- BYTE and;
- BYTE or;
- } ctrl_word_operation;
- EXTERN API BOOL gfStereoSet; //Walace060217#1
- EXTERN API BOOL gfRealStereo;
- EXTERN API const ctrl_word_setting code PowerOnSetting[];
- //EXTERN API const ctrl_word_setting code PowerOffSetting[];
- EXTERN API ctrl_word_operation xdata PowerOffProc[];
- EXTERN API const ctrl_word_operation code CalPLLProcess[];
- EXTERN API const ctrl_word_operation code CalDemodIProcess[];
- EXTERN API const ctrl_word_operation code CalDemodQProcess[];
- EXTERN API const ctrl_word_operation code CalPilotProcess[];
- EXTERN API bit M5181_FmInit(void);
- EXTERN API bit M5181_FmSetFreq(void);
- EXTERN API BOOL M5181_FmSearch(BOOL fSearchUp, XBYTE signalvl, XWORD IF_Mean, XBYTE IF_Swing_High, XBYTE IF_Swing_Low, BOOL Criterian_High);
- //EXTERN API bit M5181_FmCheckStereo(void);
- EXTERN API void M5181_FmSetStereo(BOOL fStereo); //Walace060217#1
- EXTERN API void M5181_FmEnd(void);
- EXTERN API void M5181_FmSetMute(void);
- EXTERN API BOOL M5181_WriteByte(BYTE CW, BYTE bData) large;
- EXTERN API BOOL M5181_ReadByte(BYTE CW, BYTE *rdata) large;
- EXTERN API void FMDrv_PowerOnReset(void) large;
- #if 0 //Chris change from #if(0) ->#if 0 for Source Insight view
- EXTERN API void FMDrv_SetVolumeLevel(BYTE level) large;
- #endif
- EXTERN API BYTE FMDrv_GetSigLvl(WORD TmpFreq ) large;
- EXTERN API LONG M5181_GetCurIFCnt(BYTE count_index) large;
- EXTERN API BOOL FMDrv_ValidStop(XWORD freq, XBYTE signalvl, XWORD IF_Mean, XBYTE IF_SWing_High, XBYTE IF_Swing_Low,BOOL Criterion_High) large;
- EXTERN BYTE M5181_GetCurRSSI(void) large;
- EXTERN void kal_sleep_task(DWORD dwMSec);
- #if 0 //Chris change from #if(0) ->#if 0 for Source Insight view
- EXTERN void M5181_WrReDelay (XDWORD DelayDist,XDWORD DelayOrd) large;
- #endif
- //-----------------------------------------------------
- EXTERN void ReadRssiIFCnt(void) large;
- #undef EXTERN
English
