📄 halhy1417.c
字号:
#include "utiltypedef.h"
/****************************************************************
* Viaon Technology (Suzhou) Co.,Ltd
*
* Copyright 2007, Viaon Technology (Suzhou) Co.,Ltd,Suzhou,China
* All rights reserved.
*
*
* Filename: halhy1417.c
*
* Programmer: Greg
*
* Created: 1/2/2008
*
* Description: public functions
*
*
* Change History (most recent first): 2008.1.2
****************************************************************/
#include "common.h"
#include "halhy1417.h"
#include "hali2c.h"
#if(FM_TRANS_MODULE == FM_TRANS_HY1417)
static BYTE data s_FMIdx;
//BYTE data s_FMIdx;
void halFMSet(BYTE byChIdx) //byChIdx: 0->6,7->13
{
s_FMIdx = byChIdx;
#ifndef FM_NULL_TEST
PIN_DER_SET();
PIN_CTRL(FMIndexMap[s_FMIdx]);
#endif
UartOutText("-I-: P3 0x");UartOutValue(P3, 2);
UartOutText("-I-: s_FMIdx 0x");UartOutValue(s_FMIdx, 2);
return;
}
void halFMUp(void)
{
s_FMIdx++;
if(s_FMIdx > FM_CHIDX_MAX){
s_FMIdx = FM_CHIDX_MIN;//turn around
}
halFMSet(s_FMIdx);
return;
}
void halFMDown(void)
{
if(s_FMIdx == 0){//Minmal
s_FMIdx = FM_CHIDX_MAX;//turn around
}else
s_FMIdx--;
halFMSet(s_FMIdx);
return;
}
WORD halFMGetFreq(void)
{
WORD wTmp;
wTmp = s_FMIdx<<FM_FREQ_STEPEXP; //step size 0.2MHz
if(s_FMIdx < 8){ //For 16 CH
wTmp += FM_FREQ_BASE;
}else{
wTmp += FM_FREQ_STARTII - FM_FREQ_SCOPE1;
}
//UartOutText("-I- s_FMIdx 0x");UartOutValue(s_FMIdx, 2);
//UartOutText("-I- wTmp 0x");UartOutValue(wTmp, 4);
return wTmp;
}
BYTE halFMGetIdx(void)
{
return s_FMIdx;
}
BYTE halFMFreq2Idx(WORD wFreq)
{
WORD wTmp = wFreq;
//Checking parameter validation
#if(FM_SEG_MODULE == FM_TRANS_7CH)
if((wFreq>=FM_FREQ_BASE) && (wFreq<=FM_FREQ_MAX)){
wTmp = (wTmp - FM_FREQ_BASE)>>FM_FREQ_STEPEXP;
}
#elif(FM_SEG_MODULE == FM_TRANS_14CH)
if((wFreq>=FM_FREQ_BASE) && (wFreq <= FM_FREQ_ENDI)){
wTmp = (wTmp - FM_FREQ_BASE)>>FM_FREQ_STEPEXP;
}else if((wFreq >= FM_FREQ_STARTII) && (wFreq<=FM_FREQ_MAX)){
wTmp = ((wTmp - FM_FREQ_STARTII)>>FM_FREQ_STEPEXP) + 7;
}
#elif(FM_SEG_MODULE == FM_TRANS_16CH)
if((wFreq>=FM_FREQ_BASE) && (wFreq <= FM_FREQ_ENDI)){
wTmp = (wTmp - FM_FREQ_BASE)>>FM_FREQ_STEPEXP;
}else if((wFreq >= FM_FREQ_STARTII) && (wFreq<=FM_FREQ_MAX)){
wTmp = ((wTmp - FM_FREQ_STARTII)>>FM_FREQ_STEPEXP) + 8;
}
#endif
else{
wTmp = FM_CHIDX_INVALID;
}
return (BYTE)wTmp;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -