?? nsa_timer_drv.h
字號(hào):
/////////////////////////////////////////////////////////////////////////////
// 提供全局變量:
// TDATE g_tDate: 存放系統(tǒng)時(shí)間數(shù)據(jù)
//
// 提供全局函數(shù):
//
// 讀時(shí)鐘芯片中的時(shí)間
// void TM_Read_Timer(void);
//
// 寫時(shí)鐘芯片中的時(shí)間
// void TM_Write_Timer(const TDATE *ptDate);
//
// 讀時(shí)鐘芯片的寄存器
// void TM_Read_DS_Array(char Offset,unsigned char Size,unsigned char *pTo);
//
// 寫時(shí)鐘芯片的寄存器
// void TM_Write_DS_Array(char Offset,unsigned char Size,unsigned char *pFrom);
//
// 使用全局變量:
// 無(wú)
//
// 使用全局函數(shù):
// BcdHex,HexBcd
//
//
/////////////////////////////////////////////////////////////////////////////
#ifndef __TIMER__
#define __TIMER__
#include "typedef.h"
typedef struct tagTDATE
{
WORD wYear; //1997-2050
BYTE byMon; //1-12
BYTE byDay; //1-28,29,30,31
BYTE byHour;//0-23
BYTE byMin; //0-59
WORD wMs; //0-59999
} TDATE;
struct t_time
{
unsigned short year;
unsigned char month;
unsigned char date;
unsigned char hour;
unsigned char minute;
unsigned char second;
unsigned short msec; //define same as TDATE.wMs
};
#define ACDATAGRPS 3 //最多有多少組I,U,P,Q,COS原始量
typedef struct
{
//格式:bit15:溢出,bit14:差錯(cuò),bit13:越限,bit12:符號(hào)(1負(fù)0正),bit11~0:(絕對(duì)值)值
short I[ACDATAGRPS];
short U[ACDATAGRPS];
short P[ACDATAGRPS];
short Q[ACDATAGRPS];
short COS[ACDATAGRPS];
bool QDIR[ACDATAGRPS];
} CALING_ENG_DATA;
extern CALING_ENG_DATA Cal_Eng_Data;
typedef struct
{
DWORD dPulseP;
DWORD dPulseQ;
DWORD dKwhP;
DWORD dKwhN;
DWORD dKvrP;
DWORD dKvrN;
DWORD dTKwhTP;
DWORD dTKwhTN;
DWORD dTKvrTP;
DWORD dTKvrTN;
} DIAN_LIANG;
extern DIAN_LIANG tDian_Liang;
typedef struct
{
short I[ACDATAGRPS];
short U[ACDATAGRPS];
short E[ACDATAGRPS];
bool BeUsed;
}CS5460_IVE;
extern CS5460_IVE CS5460_ive;
#define CALIBRATE_DC_OFFSET 1
#define CALIBRATE_AC_OFFSET 2
#define CALIBRATE_AC_GAIN 3
#define CALIBRATE_DEGREE 4
#define CALIBRATE_RIGHT 1
#define CALIBRATE_ERROR 2
typedef struct
{
bool bNeed_Save_Config;
bool bNeed_Read_Config;
bool bNeed_Save_Energy;
bool bNeed_Clear_Energy;
bool bNeed_Download_Config;
bool bNeed_Show_Offset_OK;
bool bNeed_Show_Gain_OK;
WORD wOprateID; //DCOff,ACOff,ACGain,DEGREE
bool bCalibrating;
WORD wCalibrate_Result;
}OPRATE_5460_FLAG;
extern OPRATE_5460_FLAG gtOp_5460_Flag;
typedef struct tagCONFIG_5460
{
DWORD Config;
DWORD Ioff;
DWORD Ign;
DWORD Voff;
DWORD Vgn;
DWORD Iacoff;
DWORD Vacoff;
DWORD Poff;
WORD wCRC;
}CONFIG_5460;
typedef struct tagENERGY_REG
{
CONFIG_5460 Conf; //保存到FLASH中
bool bUsed;
DWORD dRealEgy; //保存到DS1306EN中
DWORD E;
DWORD V;
DWORD I;
DWORD P;
DWORD Irms;
DWORD Vrms;
DWORD Tbc;
DWORD Status;
DWORD Mask;
DWORD dDeltT;
}ENERGY_REG;
#define CS_ALL 0x03
#define ENERGY_OFFSET 0 //
#define CSIBLXS 1676757
#define CSVBLXS 83874
#define CSEBLXS 04096
//串行時(shí)鐘
char read_DS1306( const char reg); //讀時(shí)鐘芯片的寄存器
void TM_Write_DS1306(const char reg,const unsigned char control);
//時(shí)間讀寫
void TM_Read_Timer(void);
void TM_Write_Timer(const TDATE *ptDate);
//讀時(shí)鐘芯片的寄存器
//Offset:偏移地址[0,95]
//Size: 長(zhǎng)度 條件:Offset+Size <= 96
//pTo: 讀出的數(shù)據(jù)存放指針
void TM_Read_DS_Array(char Offset,unsigned char Size,unsigned char *pTo);
//寫時(shí)鐘芯片的寄存器
//Offset:偏移地址[0,95]
//Size: 長(zhǎng)度 條件:Offset+Size <= 96
//pFrom: 待寫入數(shù)據(jù)的存放指針
void TM_Write_DS_Array(char Offset,unsigned char Size,unsigned char *pFrom);
//從CS5460中讀出數(shù)據(jù)
//which_cs:cs5460片選,0,1,2分別對(duì)應(yīng)1,2,3
//Command: 命令字
//pDword: 待讀出的數(shù)據(jù)存放指針,自動(dòng)將24bits 轉(zhuǎn)換成DWORD
void TM_Read_CS5460(unsigned char Command,unsigned char which_cs,unsigned long *pDword);
//向CS5460中寫入數(shù)據(jù)
//which_cs:cs5460片選,0,1,2分別對(duì)應(yīng)1,2,3
//Command: 命令字
//pDword: 待寫入的數(shù)據(jù)存放指針,自動(dòng)將DWORD 轉(zhuǎn)換成24bits
void TM_Write_CS5460(unsigned char Command,unsigned char which_cs,unsigned long *pDword);
//上電初始化CS5460
void TM_Initinize_CS5460(void);
//偏置校驗(yàn)
//byWhich_CS:0,1,2,3(全部Three)
bool TM_CS_Set_Dc_Offset(BYTE byWhich_CS);
//偏置校驗(yàn)
//byWhich_CS:0,1,2,3(全部Three)
bool TM_CS_Set_AC_Offset(BYTE byWhich_CS);
//增益校驗(yàn)
bool TM_CS_Set_AC_Gain(BYTE byWhich_CS);
//角度校驗(yàn)
bool TM_CS_Set_Degree(BYTE byWhich_CS,BYTE byOprate);
//保存CS5460配置信息
bool TM_Save_CS5460_Config(BYTE byWhich_CS);
//復(fù)歸CS5460
bool TM_Reset_CS5460(BYTE byWhich_CS);
//校驗(yàn)運(yùn)行中CS5460配置信息
bool TM_Check_CS5460_Config(BYTE byWhich_CS);
//CS5460操作顯示
void CS5460A_Operating_Show();
//實(shí)際保存能量清0
void TM_Clear_Real_Energy();
//周期性電能管理操作
// >1.3S調(diào)用一次
void Cycle_Energy_Operation();
extern volatile TDATE g_tDate;
extern ENERGY_REG Energy_Reg[3];
#endif
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -