⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lvproto.h

📁 LV24000的单片机DEMO程序
💻 H
字号:
// LvProto.h: Function prototypes of project

//-----------------------------------------------------------------------------
// Function prototypes
//-----------------------------------------------------------------------------
/* Radio.c */
BYTE AdjustVolume(BYTE byVolume);
BYTE SetFrequency(WORD wDisplayFreq);
WORD GetDisplayFrequency(WORD wSpacing);
BYTE SetRegion(BYTE byRegion);
BYTE ScanStation(BYTE byFlag);

/* RadioSub.c */
BYTE MeasureFrequency(WORD wSource, DWORD dwMeasureTimeUs, PWORD pwFreq);
WORD DisplayFreqToRf(WORD wDisp);
WORD RfToDisplayFreq(WORD wRf);
BYTE CheckRfLimit(PWORD pwCurFreq, WORD wRfBandLow, WORD wRfBandHigh, int iAdjust);
BYTE ScanFmRoutine(int iDir, WORD wFmBandLow, WORD wFmBandHigh);
BOOL FindFmStation(void);

/* HardwareIo.c */
void Init3wHardwareIo(void);
void IoWrite3W(BYTE byLow, BYTE byHigh);
BYTE IoRead3W(BYTE byReg);
DWORD Pulse3wNRW(WORD wStart, WORD wStop, DWORD dwTimeUs);
void Enable3wIrq(BOOL bState);

#ifdef USE_PRESET
BYTE GetNextSavePresetLocation(void);
void ClearPresetStorage(void);
BYTE SavePreset(BYTE byLocation, WORD wFreq);
WORD RecallPreset(BYTE byLocation);
#endif //USE_PRESET

void IoWriteByte3W(BYTE byData);
WORD ArmTimer0ForMsr(DWORD dwTimeUs);
void HandleTimer0Done(void);
void DelayUs(WORD wT0Cnt);

#ifdef USE_PRESET
	#define FLS_CLEAR 	TRUE
	#define FLS_SAVE	FALSE
BYTE WriteSettingsToFlash(BOOL bClear);
BYTE RetrieveSettingsFromFlash(BYTE bySettingId);
#endif //USE_PRESET

// Keypad.c
void KeypadIrq(BYTE byRow);
BYTE ProcessKey(BYTE byKey);
BYTE GetNumKeyValue(BYTE byKeyCode);
BYTE KpMenu0(BYTE byKey);
BYTE KpMenu1(BYTE byKey);
BYTE KpMenu2(BYTE byKey);
BYTE KpMenu3(BYTE byKey);
BYTE AdjustHwFeature(BYTE byFeatureId, BYTE byAdj);

#ifdef USE_LCD
char *GetFeatureName(BYTE byFeatureId);
void ShowFeatureValue(BYTE byFeatureId, BYTE byVal);
void InitKeypadMenu(void);
void SetInputCursorPos(void);
#endif //USE_LCD

BYTE GetFeatureValueType(BYTE byFeatureId);

#ifdef USE_PRESET
void KpPresetHandling(BOOL bStore);
#endif //USE_PRESET

BYTE CallBack(BYTE byCbReason);

/* Usb3wCmd.c */
#ifdef USE_USB
//void Init3w(void);

BYTE UsbProcess3wCmd(BYTE byReceiveCnt);
BYTE UsbOpen3wCmd(void);
BYTE UsbGetFirmwareVersion(void);
BYTE UsbSet3wDgtInterface(void);
BYTE UsbWrite3W(void);
BYTE UsbRead3W(void);
BYTE UsbWrite3W_Multiple(void);
BYTE UsbExtPulse3W(void);
BYTE UsbRepeatIo3W(void);
BYTE UsbRw3WireLines(void);

void UsbWrite3wV3V4(BYTE byLow, BYTE byHigh);
BYTE UsbRead3wV3V4(BYTE byReg);
void IoWrite3W_V3(BYTE byLow, BYTE byHigh);
BYTE IoRead3W_V3(BYTE byReg);

#endif //USE_USB

/* USB.c */
#ifdef USE_USB
//BOOL IsUsbConnected(void);
void SendReply(BYTE byCount);
#endif //USE_USB

/* RdsFunc.c */
#ifdef USE_USB

#ifdef USE_IRQSCRIPT
BYTE UsbIrqControl(void);
BYTE UsbExecScript(void);
void ExtRdsIntHandler(void);
void UsbLvIrqProcess(PBYTE pbyScript);
#endif //USE_IRQSCRIPT

#endif //USE_USB

/* LV24001.c */
BYTE InitLv2400xChip(void);
void DeInitLv2400xChip(void);
BYTE GetFmFieldStrength(void);
BYTE GetStereoState(void);
BYTE GetHwFeatureLimit(BYTE byFeatureId);
BYTE GetHwFeatureValue(BYTE byFeatureId);
BYTE SetHwFeatureValue(BYTE byFeatureId, BYTE byValue);
void EnableLv2400xIrq(void);
void DisableLv2400xIrq(void);
void HandleLv2400xIrq(void);
void AudioFeedback(BYTE byType);

BYTE Set_IF_Freq(WORD wInputIF);
BYTE Set_SD_Freq(WORD wInputSC);
BYTE GetOutputSelect(void);
WORD SetOutputSelect(WORD wOutputCfg);
WORD SetUpChipMode(WORD wCfgIn);
BYTE WriteIfOsc(WORD wIfOscValue); 
BYTE WriteSdOsc(WORD wSdOscValue);
BYTE WriteRfOsc(WORD wRfOscValue);
BYTE WriteRfCap(WORD wCapValue);
BYTE GetRfCapValue(void);
BYTE SetAFCMode(BYTE byEnable);
BYTE SetDeemphasis(BYTE byDeemp);
BYTE GetChipVolume(void);
void SetChipVolume(BYTE byLevel);
BYTE SetStereoMono(BOOL bStereo);
BYTE SetChipStereo(BYTE byStereo);
BYTE SetChipAudioMute(BYTE byMute, BYTE bySource);
WORD GetDividerFactor(void);
BYTE CountPulse(DWORD dwMeasureTimeUs, PWORD pwFreq);
BYTE CountPulseCnt1(DWORD dwMeasureTimeUs, PWORD pwFreq);
#ifdef USE_EXTCLK
BYTE CountPulseCnt2(PWORD pwFreq);
WORD PulseToFrequency2(WORD wCntA, WORD wCntB);
#endif //USE_EXTCLK
void ShadowMeasuredFrequency(DWORD dwFreqHz);
WORD PulseToFrequency1(WORD wPulseCnt, DWORD dwMeasureTimeUs);
BYTE SetRfFrequency(WORD wRfFreq);
void AdjustHwToneControl(void);
#ifdef USE_USB
void RestoreShadowReg(void);
#endif //USE_USB
void ShadowReg(WORD wRegAddress, BYTE byValue);
BYTE GetSwRegValue(WORD wRegAddress);
void SelRegBlock(BYTE byBlock);
int IsFrequencyOk(WORD wCurFreq, WORD wExpFreq, DWORD dwPrecise);

#ifdef USE_LV2410x
BYTE WriteAmCap(WORD wAmCapValue);
void SetRadioFm(void);
void SetRadioAm(void);
BYTE SetAmFrequency(WORD wDisplayFreq);
WORD AmRfToFmRf(WORD wAmRfFreq);
WORD FmRfToAmRf(WORD wFmRfFreq);
WORD AlignFrequencyOnGrid(WORD wDisplayFreq);
BYTE SetAM_Antenna_Frequency(WORD wFreq);
BYTE ScanSetAmFreq(WORD wAmRf, BYTE byPrecisionLevel);
BYTE ScanAmRoutine(int iDir, WORD wAmBandLow, WORD wAmBandHigh);
#endif //USE_LV2410x

/* DgtParser.c */
void WriteReg(WORD wRegAddress, BYTE byValue);
BYTE ReadReg(WORD wRegAddress);
BYTE DriveBit(WORD wRegAddress, BYTE byBitMask, BYTE byState);
BYTE DriveBitNeg(WORD wRegAddress, BYTE byBitMask, BYTE byState);
BYTE SetRegBits(WORD wRegAddress, BYTE byValueMask, BYTE bySetValue);

/* TuneAlg.c */
BYTE SearchInByteArray(BYTE byToFind, BYTE _rom pbyArray[], BYTE byArraySize);
BYTE LinTuneDac(WORD wExpFreq, DWORD dwMeasureTimeUs, FPTR_WRITE_OSC fpWriteOsc, WORD wX1, WORD wX2, BYTE bPrecision);
WORD CalculateCoeff(WORD wFreq);
WORD InterpolateY(WORD wX, WORD wX1, WORD wX2, WORD wY1, WORD wY2);
WORD InterpolateX(WORD dwY, WORD wX1, WORD wX2, WORD wY1, WORD wY2);
int InterpolateOscStep(WORD dwY, WORD wX1, WORD wX2, WORD wY1, WORD wY2);
BYTE InitTuningRfCapOsc(void);
BYTE GetRfAtCapOsc(WORD wCapValue, WORD wOscValue, DWORD dwMsrTimeUs, PWORD pwFreq);
BYTE ScanSetFreq(WORD wTuneFreq, BYTE byPrecisionLevel);
BYTE FineTuneRfOsc(WORD wRfFreq, DWORD dwMeasureTimeUs, WORD wExpOscValue, BYTE byNeedPrecision);
BYTE CalculateRfCapOsc(WORD wFreq, PWORD pwCap, PWORD pwOsc, BYTE byPrecisionLevel);

/* LCD.c */
#ifdef HITACHI_LCD
void InitLcd(void);
void ClearDisplay(void);
void ClearLcdPos(BYTE byPos, BYTE byLen);
void SendLcdCmd(BYTE byCmd);
void SendLcdData(BYTE byData);
void SendLcdInitCmd(BYTE byInitCmd);
void DataToLcd(BYTE byData);
BYTE GetWriteLcdPattern(BYTE byLcdData);
void WaitLcdReady(void);
BYTE DetectLcd(void);
#endif //HITACHI_LCD

#ifdef USE_LCD
void PrintString(BYTE byPos, char *pStr);
void PrintDword(BYTE byPos, DWORD dw);
void PrintFreq10k(BYTE byPos, WORD wFreq);
void ShowStandAloneScreen(void);
void ShowUsbModeScreen(void);
void ShowScanStart(BYTE byFlag);
void ShowSetFreqStart(void);
void ShowPreset(BYTE byNr, BOOL bStore);
void ShowResult(BYTE byResult);
void PrintKeyNotSupport(BYTE byNrKey);
void ShowFieldStrength(BYTE byFs);
void ShowMonoStereo(BYTE cMsChar);
#endif //USE_LCD

/* IIC_Lcd.c */
#ifdef BOLYMIN_LCD
void InitLcd(void);
void ClearDisplay(void);
void TurnOffIcons(void);
void ShowCursor(BOOL bShow);
void ClearLcdPos(BYTE byPos, BYTE byLen);
void SendLcdCmd(BYTE byCmd);
void SendLcdData(BYTE byData);
void SendLcdChar(BYTE byData);
void ShowIcon(BYTE byIcon, BYTE byState);
void WaitLcdReady(void);
#endif //BOLYMIN_LCD

/* main.c */
// Parameter for SetOperateMode
#define OPM_UNKNOWN 	((BYTE)0)	// Unknown operation mode
#define OPM_STAND_ALONE	((BYTE)1)	// Stand alone mode
#define OPM_USB			((BYTE)2)	// USB mode
void SetOperateMode(BYTE byMode);

/* -------------------------------EOF------------------------------------------ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -