📄 tmbsltest.c
字号:
// tmbslTest.c : Defines the entry point for the console application.
//
//-----------------------------------------------------------------------------
// Standard include files:
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
// Project include files:
//-----------------------------------------------------------------------------
//
#include "tmTypes.h"
#include "tmhalFEtypes.h"
#include "dvp.h"
#include "SystemFunc.h"
#include "tmbslTuner.h"
#include "tmbslTunerext.h"
#include "tmbslDemodCab.h"
#include "tmbsl10023.h"
#include "tmbsl10023local.h"
//-----------------------------------------------------------------------------
// Types and defines:
//-----------------------------------------------------------------------------
//
#define DISPLAY_ERR(x,y) if(TM_OK != x) { \
printf("\n%s returns %u\n", y, x); \
return -1;}
#define DEMOD_I2C_ADDRESSS 0x18
#define TUNER_I2C_ADDRESSS 0xC0
//-----------------------------------------------------------------------------
// Internal Prototypes:
//-----------------------------------------------------------------------------
//
int DisplayConsoleMenu();
int DisplayConsoleInfo();
int RunConsoleApp();
//-----------------------------------------------------------------------------
// Main function:
//-----------------------------------------------------------------------------
//
int TCLTunerTest(void)
{
tmErrorCode_t eErrorCode;
I2C_Conf_T sI2CConf;
tmhalFEBslSystemFunc_t myDemodSystemFunc;
tmhalFEBslSystemFunc_t myTunerSystemFunc;
tmbslTuConfig_t myTunerFunc;
tmbslTuParam_t MyTunerParam;
tmbslDcParam_t MyDemodParam;
tmhalFEManagerStatus_t eStatus;
//---------
// INIT COM
//---------
// open
SY_OpenCom();
// set the config - LPT1 at 100khz
sI2CConf.iLptPort = 1;
sI2CConf.iI2cSpeed = 100000;
sI2CConf.bAutoInc = 1;
sI2CConf.bDebugTrace = 0;
SY_SetComConfig(sI2CConf);
//---------
// INIT BSL
//---------
// initialize system func for demod
myDemodSystemFunc.SY_GetTickTime = SY_GetTickTime;
myDemodSystemFunc.SY_GetTickPeriod = SY_GetTickPeriod;
myDemodSystemFunc.SY_GetCommErrors = SY_GetComError;
myDemodSystemFunc.SY_Write = SY_WriteDemod;
myDemodSystemFunc.SY_WriteBit = SY_WriteBitDemod;
myDemodSystemFunc.SY_Read = SY_ReadDemod;
// initialize system func for tuner
myTunerSystemFunc.SY_GetTickTime = SY_GetTickTime;
myTunerSystemFunc.SY_GetTickPeriod = SY_GetTickPeriod;
myTunerSystemFunc.SY_GetCommErrors = SY_GetComError;
myTunerSystemFunc.SY_Write = SY_WriteTuner;
myTunerSystemFunc.SY_WriteBit = SY_WriteBitTuner;
myTunerSystemFunc.SY_Read = SY_ReadTuner;
// initialize tuner address for the demod
myTunerFunc.initFunc = tmbslTunerInit;
myTunerFunc.deinitFunc = tmbslTunerDeInit;
myTunerFunc.getSWVersionFunc = tmbslTunerGetSWVersion;
myTunerFunc.setPowerStateFunc = tmbslTunerSetPowerState;
myTunerFunc.getPowerStateFunc = tmbslTunerGetPowerState;
myTunerFunc.setCfgFunc = tmbslTunerSetConfig;
myTunerFunc.getCfgFunc = tmbslTunerGetConfig;
myTunerFunc.writeFunc = tmbslTunerWrite;
myTunerFunc.writeBitFunc = tmbslTunerWriteBit;
myTunerFunc.readFunc = tmbslTunerRead;
myTunerFunc.setRfFunc = tmbslTunerSetRf;
myTunerFunc.getRfFunc = tmbslTunerGetRf;
// initialize tuner unit 0
MyTunerParam.uHwAddress = TUNER_I2C_ADDRESSS;
MyTunerParam.systemFunc = myTunerSystemFunc;
eErrorCode = tmbslTunerInit ((tmUnitSelect_t)0, MyTunerParam);
DISPLAY_ERR (eErrorCode, "tmbslTunerInit");
// initialize demod unit 0
MyDemodParam.uHwAddress = DEMOD_I2C_ADDRESSS;
MyDemodParam.systemFunc = myDemodSystemFunc;
MyDemodParam.tunerFunc = myTunerFunc;
MyDemodParam.eTunerUnit = (tmUnitSelect_t)0;
eErrorCode = tmbsl10023Init ((tmUnitSelect_t)0, MyDemodParam);
DISPLAY_ERR (eErrorCode, "tmbsl10023Init");
// set the tuner and demod config for CU1216 board
eErrorCode = tmbslTunerSetConfig ((tmUnitSelect_t)0, tmhalFEBoard, 0x57550000);
DISPLAY_ERR (eErrorCode, "tmbslTunerSetConfig");
eErrorCode = tmbsl10023SetConfig((tmUnitSelect_t)0, tmhalFEBoard, 0x57550000);
DISPLAY_ERR (eErrorCode, "tmbsl10023SetConfig");
// Initialize TDA10023 registers
eErrorCode = tmbsl10023SetConfig((tmUnitSelect_t)0, tmhalFEInit, 0);
DISPLAY_ERR (eErrorCode, "tmbsl10023SetConfig(tmhalFEInit)");
//------------------
// PROGRAM FRONT-END
//------------------
eErrorCode = tmbsl10023SetRF ((tmUnitSelect_t)0, 330000000);
DISPLAY_ERR (eErrorCode, "tmbsl10023SetRF");
eErrorCode = tmbsl10023SetSR ((tmUnitSelect_t)0, 6872000);
DISPLAY_ERR (eErrorCode, "tmbsl10023SetSR");
eErrorCode = tmbsl10023SetSI ((tmUnitSelect_t)0, tmhalFESpectrumNormal);
DISPLAY_ERR (eErrorCode, "tmbsl10023SetSI");
eErrorCode = tmbsl10023SetMod ((tmUnitSelect_t)0, tmhalFEModulationAuto);
DISPLAY_ERR (eErrorCode, "tmbsl10023SetMod");
// perform algo
do {
eErrorCode = tmbsl10023Manager((tmUnitSelect_t)0, &eStatus);
DISPLAY_ERR (eErrorCode, "tmbsl10023Manager");
} while (tmhalFEManagerStatusNotCompleted == eStatus);
//---------------
// DISPLAY RESULT
//---------------
if (tmhalFEManagerStatusCarrierOk == eStatus)
printf("\n\n Carrier detected...\n");
else
printf("\n\n No carrier detected !\n");
//------------------------
// DISPLAY MENU (OPTIONAL)
//------------------------
// RunConsoleApp();
//------
// CLOSE
//------
eErrorCode = tmbslTunerDeInit ((tmUnitSelect_t)0);
DISPLAY_ERR (eErrorCode, "tmbslTunerDeInit");
eErrorCode = tmbsl10023DeInit ((tmUnitSelect_t)0);
DISPLAY_ERR (eErrorCode, "tmbsl10023DeInit");
// close communication port
SY_CloseCom();
return 0;
}
int DisplayConsoleInfo()
{
printf("\nSequence of operations:\n");
printf("f -> Enter Frequency (ex: 170000)\n");
printf("s -> Enter Symbol rate (ex: 6875)\n");
printf("e -> Execute manager while status is 'not completed'\n");
printf("l -> Check Lock Status. The FEL bit should be '1'\n");
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -