P4UWaterShenYang/hardinterface/inc/UWater_clktrim_driver.h

84 lines
2.2 KiB
C
Raw Normal View History

2024-06-03 15:49:39 +08:00
/**
******************************************************************************
* @file lvd.h
* @author (C)2015, Qindao ieslab Co., Ltd
* @version V1.0
* @date 2015-12-25
* @brief the function of the entity of system processor
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __UWater_CLKTRIM_DRIVER_H
#define __UWater_CLKTRIM_DRIVER_H
#ifdef __cplusplus
extern "C"
{
#endif
#include "ddl.h"
#include "type.h"
#define TRIM_DONE 0xFF //У׼<D0A3>ɹ<EFBFBD>
#define TRIM_OVERFLOW 0xEE //<2F><>У׼ʱ<D7BC>Ӽ<EFBFBD><D3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define REF_CON (32768u) //<2F>ο<EFBFBD>ʱ<EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>32768hz<68><7A>3277ԼΪ100ms<6D><73>
#define CAL_CON_TARGET (4000000u)//3840u //<2F><>У׼ʱ<D7BC>Ӽ<EFBFBD><D3BC><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>ֵ<EFBFBD><D6B5>38400hz<68><7A>3840Ϊ100ms<6D><73>
#define ERROR_RANGE 19u //<2F><>У׼ʱ<D7BC><CAB1><EFBFBD><EFBFBD><EFBFBD>Χֵ<CEA7><D6B5>3840*0.005<EFBFBD><EFBFBD>Լ0.5%<25><>
#define TRIM_MAX_NUM 60 //У׼ģ<D7BC><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У׼<D0A3><D7BC><EFBFBD><EFBFBD>
#define EVERYDAY_TRIM_MAX_NUM 50 //У׼ģ<D7BC><C4A3>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У׼<D0A3><D7BC><EFBFBD><EFBFBD>
/*<2A>¶Ȳ<C2B6>ֵ <20><>λ<EFBFBD><CEBB><EFBFBD>϶<EFBFBD>*/
#define TEMPERTURE_DIFF 5.0f
enum clktrim_adjust_direction
{
DIRECTIONLESS = 0,
UPWARD,
DOWNWARD
};
typedef struct
{
u8 adjust_direction_flg; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>־
u32 diff_value; //<2F><>ֵ
}CLKTRIM_INFO;
enum clktrim_machine_state_num //ʱ<><CAB1>У׼״̬<D7B4><CCAC>״̬<D7B4><CCAC>
{
CLKTRIM_MACHINE_S0 = 0,
CLKTRIM_MACHINE_S1,
CLKTRIM_MACHINE_S2,
CLKTRIM_MACHINE_S3
};
/* MACRO Define---------------------------------------------------------------*/
#define SYS_FREQ 4000000
#if(SYS_FREQ == 4000000)
#define SYSCTRL_FREQ SysctrlRchFreq4MHz
#elif(SYS_FREQ == 8000000)
#define SYSCTRL_FREQ SysctrlRchFreq8MHz
#elif(SYS_FREQ == 16000000)
#define SYSCTRL_FREQ SysctrlRchFreq16MHz
#elif(SYS_FREQ == 24000000)
#define SYSCTRL_FREQ SysctrlRchFreq24MHz
#endif
/* variables Define---------------------------------------------------------------*/
/* Function Declare------------------------------------------------------------*/
extern void ClkTrimInit(void);
u8 ClkTrimIfIdle(void);
void ClktrimMainMachine(void);
#ifdef __cplusplus
}
#endif
#endif /* __UWater_UART_DRIVER_H */