optical/EMBOS/Users/EmbBase/paras.h

148 lines
2.7 KiB
C
Raw Normal View History

2025-09-04 01:45:08 +00:00
#ifndef __PARAS_H__
#define __PARAS_H__
#include "config.h"
#ifndef USE_SMEC
#define USE_SMEC 0 // 0:<3A><>ʹ<EFBFBD>ü<EFBFBD><C3BC><EFBFBD>оƬ
// 1:ʹ<>ü<EFBFBD><C3BC><EFBFBD>оƬ(ʹ<>ü<EFBFBD><C3BC><EFBFBD>оƬÿ<C6AC>ζ<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>30ms)
#endif
//---------------------------------
// FRAM<41><4D>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>
// <20><>8K<38>ֽ<EFBFBD>
// 256<35>ֽ<EFBFBD> <20><><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 256<35>ֽ<EFBFBD> nvpara
// 512<31>ֽ<EFBFBD> Ԥ<><D4A4>
// 1K<31>ֽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 1K<31>ֽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 1K<31>ֽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD>
#define ENC_ADDR 0x0000 // 256<35>ֽ<EFBFBD>
#define NVPARA_ADDR 0x0100 // 256<35>ֽ<EFBFBD>
#define REV_ADDR 0x0200 // 512<31>ֽ<EFBFBD>
#define MCPARA_ADDR 0x0400 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,1K
#define WKPARA_ADDR 0x0800 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,1K
#define ANGPARA_ADDR 0x0C00 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD>Ƕ<EFBFBD>
//---------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define PTYPE_U 0 // <20>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>
#define PTYPE_S 1 // <20>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD>
#define PTYPE_B 2 // λͼ
#define PARA_NUM 256
#define PARA_STR_LEN 30
#define PARA_MC_VALID 0x00005500
#define PARA_WK_VALID 0x000000AA
#define PARA_VALID (PARA_MC_VALID|PARA_WK_VALID)
//---------------------------------
//
#define MAX_HOR 12 // <20><>,<2C>±<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD>ֵ,<2C>
#define MAX_VER 21 // <20><>,<2C>±<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>ֵ,ת<><D7AA>
typedef struct
{
u32 buf[PARA_NUM];
} __attribute__ ((packed)) ParaStruct;
//--------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>)
typedef struct
{
u32 dataidx; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
u16 mvmnt; // <20>ƶ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
} __attribute__ ((packed)) Patch;
#define PATCH_DATA_NUM 10 // ֧<><D6A7><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>
typedef struct
{
Patch patch[PATCH_DATA_NUM];
} __attribute__ ((packed)) PatchData;
//---------------------------------
#ifdef _IN_PARAS_C
ParaStruct g_mcPara;
ParaStruct g_wkPara;
ParaStruct g_angPara;
PatchData g_patchData;
#else
extern ParaStruct g_mcPara; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
extern ParaStruct g_wkPara; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
extern ParaStruct g_angPara; // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ǶȲ<C7B6><C8B2><EFBFBD>
extern PatchData g_patchData; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>
#endif
//---------------------------------
void InitParas(void);
//---------------------------------
void SaveMcPara(void);
void SaveWkPara(void);
void SaveAngPara(void);
//---------------------------------
void CheckMcParaRange(void);
void CheckAMcParaRange(int id);
void CheckWkParaRange(void);
void CheckAWkParaRange(int id);
//---------------------------------
void WriteDefMcPara(void);
void WriteDefWkPara(void);
void WriteDefMvAngPara(void);
//---------------------------------
void SetMcParaNameString(void* pDat);
void SetWkParaNameString(void* pDat);
void SetMcParaList(void * pDat);
void SetWkParaList(void * pDat);
void SetDefAngParaList(void * pDat);
//---------------------------------
u32 GetAMcPara(int id);
void SetAMcPara(int id, u32 val);
u32 GetAWkPara(int id);
void SetAWkPara(int id, u32 val);
void SetAAnglePara(int id, u16 val);
//---------------------------------
#endif