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

📄 halhy1417.c

📁 威望公司MP3 + USB MCU 的参考软件
💻 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 + -