📄 clone.h
字号:
#ifndef _CLONE_H_
#define _CLONE_H_
#ifdef _CLONE_C_
#define _CLONE_DECLARE_
#else
#define _CLONE_DECLARE_ extern
#endif
#ifdef _CLONE_C_
//MACRO DEFINE
/* ======================================= */
//DATATYPE DEFINE
/* ======================================= */
//Check sum type
typedef enum
{
CHECK_NONE,
CHECK_ADDRESS,
CHECK_N_BYTE,
CHECK_16_BYTE,
CHECK_END
}CHECK_SUM_TYPE;
//WAIT ACK TYPE
typedef enum
{
SEND_NO_ACK_WAIT,
SEND_SENDREADY_WAITACK,
SEND_ADDRESS_WAITACK,
SEND_DATA_WAITACK,
SEND_RECREADY_WAITACK,
SEND_WAIT_ACK_END
}WAIT_ACK_TYPE;
/* ======================================= */
/* FUNCTION PROTOTYPES */
/* ======================================= */
static Byte GetKeyValue(void);
static void KeyScan(void);
static void KeyHandler(void);
static void CloneStatusToWaitACK(WAIT_ACK_TYPE type);
static void CloneStatusToRecData(void);
static void CloneStatusToSendData(void);
static void CloneClearRecMessage(void);
static void CloneHandler(void);
static void LedDisplayHandler(void);
static Bool VerifyCheckSum(CHECK_SUM_TYPE type);
static void GlobalVariableInit(void);
static Bool CheckRecAck(WAIT_ACK_TYPE type);
static void McuInit(void);
#endif
/* ======================================= */
/*DATATYPE DEFINE */
/* ======================================= */
//clone status
typedef enum
{
CLONE_NONE,
CLONE_SEND_PREPARE,
CLONE_SEND_SEND_READY,
CLONE_SEND_ADDR,
CLONE_SEND_DATA,
CLONE_SEND_REC_READY,
CLONE_REC_PREPARE,
CLONE_REC_AND_SEND_ACK,
CLONE_WAIT_ACK,
CLONE_SEND_END,
CLONE_REC_END,
CLONE_ERROR,
CLONE_REC_CUSTOM_ERROR,
CLONE_CHECKSUM_ERROR
}CLONE_STATUS;
/* ======================================= */
//GLOBAL VARIABLE DECLARE
/* ======================================= */
//clone status
_CLONE_DECLARE_ Byte IDATA g_ucCloneStatus;
_CLONE_DECLARE_ Word IDATA g_wCloneNVAddress;
_CLONE_DECLARE_ Word IDATA g_wTVNVAddress;
_CLONE_DECLARE_ Byte CalculateCheckSum(Byte DataNum,Byte *pbuffer);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -