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

📄 halinfo.c

📁 威望公司MP3 + USB MCU 的参考软件
💻 C
字号:


#include "utiltypedef.h"
#include "hali2c.h"
#include "halfm.h"
#include "halvol.h"
#include "libfatif.h"
#include "halinfo.h"
#include "halmp3dec.h"
//This file will manage info stored in E2PROM
//INFO1: Version, FMIdx, VolLevel, EQ, SDENUM, swMp3Idx, swTotalCnt
//INFO2: dwStart, dwSize, name[8]
//INFO3: ASCII CODE

extern ST_MP3_SREQ data Mp3SReq;
extern ST_SEARCH_INFO Mp3SearchInfo;

S_INFO1 data sInfo1;
//S_INFO1 sInfo1;

void halWRInfo1(void)
{
	//The size of sInfo1 should be 8 byte
	sInfo1.bVer 		= E2PROM_INFO_VERSION;
	sInfo1.bFMIdx 	= halFMGetIdx();
	sInfo1.bVolLevel 	= halVolGet();
//	sInfo1.bEQIdx 	= halGetEQ();
	sInfo1.swMp3Idx 	= Mp3SReq.swIdx;
	sInfo1.swTotalCnt = Mp3SReq.swTotalCnt;

	Write_A_Page((BYTE *)&sInfo1, (SINFO1_PAGE_ADDR<<E2PROM_PAGE_SIZEEXP));
	DelayMs(10);
	
	return;
}

//BYTE halRDInfo1(void)
void halRDInfo1(void)
{
	Read_N_Bytes((BYTE *)&sInfo1, sizeof(sInfo1), (SINFO1_PAGE_ADDR<<E2PROM_PAGE_SIZEEXP));

	return;
}

#if 0
S_INFO2 sInfo2;

void halWRInfo2(void)
{
	//The size of sInfo2 should be 8 byte
	memcopy(sInfo2.bName, Mp3SearchInfo.bName, 8);
	WriteE2PRom((BYTE *)&sInfo2, 1, (SINFO2_PAGE_ADDR<<E2PROM_PAGE_SIZEEXP));//two page of 24C08 for STORAGE_INFO
	
	return;
}

void halRDInfo2(void)
{
	ReadE2PRom((BYTE *)&sInfo2, sizeof(sInfo2), (SINFO2_PAGE_ADDR<<E2PROM_PAGE_SIZEEXP));
	
	return;
}
#endif

void halCheckInfo1(void)
{
	//BYTE bRet = TRUE;

	halVolInit(); //Set default volume		
	halRDInfo1();
	
	if(sInfo1.bVer == E2PROM_INFO_VERSION){ //Valid
		halFMSet(sInfo1.bFMIdx);
#ifdef ENABLE_VOL_REC		
		halVolSet(sInfo1.bVolLevel);
#endif		
#ifdef ENALBE_EQ_REC
		halEQSet(sInfo1.bEQIdx);				
#endif		
	}else{
		halFMSet(FM_CHIDX_DEFAULT); //Set default frequency	
		halEQSet(EQ_DEFAULT);
	}

	
	return;
}

void halCheckMp3Info()
{
	BYTE bRet = FALSE;

	Mp3SReq.bySType = SEARCH_MP3_JUMP;
	
	if(sInfo1.bVer == E2PROM_INFO_VERSION){
		if(Mp3SReq.swTotalCnt == sInfo1.swTotalCnt){
			Mp3SReq.swJump = sInfo1.swMp3Idx;
			FileSearch(&Mp3SearchInfo, &Mp3SReq);

			bRet = TRUE;
		}
	}

	if(bRet==FALSE){
		Mp3SReq.swJump = 0;
		FileSearch(&Mp3SearchInfo, &Mp3SReq);//FileSearchNext(sDrv, sSearchInfo, &Mp3SReq);	
	}

	return;
}




⌨️ 快捷键说明

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