/************************************************************************ Project: Washing Machine Drive Filename: classB.h Partner Filename: N/A Description: Partner file of main.c Complier: IAR Embedded Workbench for ARM 7.80, IAR Systems. CPU TYPE : ST32F0xx ************************************************************************* Copyright (c) 2017 Welling Motor Technology(Shanghai) Co. Ltd. All rights reserved. ************************************************************************* ************************************************************************* Revising History (ECL of this file): WLBDM_M0_SR_20170814-new FSM1.1, by cyf, create this file; ************************************************************************/ /************************************************************************ Beginning of File, do not put anything above here except notes Compiler Directives: *************************************************************************/ #ifndef CLASSB_H #define CLASSB_H /************************************************************************ Compiler Directives (N/A) *************************************************************************/ #ifdef _CLASSB_C_ #define CLASSB_EXT #else #define CLASSB_EXT extern #endif #include "stdint.h" #include "typedefine.h" /************************************************************************ Definitions & Macros *************************************************************************/ /* 1:enable FLASH CRC selftest 0:disable */ #define FLASHSTEN 1 /* 1:enable clock selftest 0:disable */ #define CLOCKSTEN 1 /* 1:enable microchip fault detection 0:disable */ #define CHIP_FAULT_DETECTION 1 #define FLASH_TEST_USE /************************************************************************ TypeDefs & Structure defines (N/A) *************************************************************************/ typedef union { struct { //bit ULONG TR_CPU_ERR:1; //0 ULONG TR_RAM_ERR:1; //1 ULONG TR_CLOCK_ERR:1; //2 ULONG TR_FLASH_ERR:1; //3 ULONG TR_STACK_ERR:1; //4 ULONG TR_ADC_ERR:1; //5 ULONG TR_INTER_TIM1_ERR:1; //6 ULONG TR_INTER_TIM2_ERR:1; //7 ULONG TR_INTER_TIM3_ERR:1; //7 ULONG TR_INTER_TIM4_ERR:1; //8 ULONG TR_INTER_TIM6_ERR:1; //9 ULONG TR_INTER_ADC_ERR:1; //9 ULONG TR_CPU1CtrlFlow_ERR:1; ULONG TR_FLASHCtrlFlow_ERR:1; ULONG TR_RAMCtrlFlow_ERR:1; ULONG TR_ADCtrlFlow_ERR:1; ULONG TR_CLOCKCtrlFlow_ERR:1; ULONG TR_STACKCtrlFlow_ERR:1; ULONG TR_TBCITEM_ERR:1; ULONG TR_I_ABNORMAL:1; ULONG TR_I_NOCHANGE:1; ULONG TR_TC_NOCHANGE:1; ULONG TR_TC_ABNORMAL:1; ULONG TR_VDC_NOCHANGE:1; ULONG TR_VDC_ABNORMAL:1; }bit; ULONG all; }CLASS_ERR_CODE; /************************************************************************ Exported Variables *************************************************************************/ #ifdef _CLASSB_C_ #pragma location = ".CRCsection" CLASSB_EXT const uint32_t sect = 0xFFFFFFFF; CLASSB_EXT UBYTE clas_blclassBErrFlg = 0; CLASSB_EXT UWORD clas_uwclassBErrCode = 0; CLASSB_EXT UWORD clas_uwclassBErrCode1 = 0; CLASSB_EXT UBYTE clas_ubTBSFlg = 0; CLASSB_EXT UBYTE clas_ubSystickFlg = 0; CLASSB_EXT ULONG clas_ulLSIDifPeriod = 0; CLASSB_EXT ULONG clas_DifPeriod = 0; CLASSB_EXT CLASS_ERR_CODE clasB_unFaultCode = {0}; CLASSB_EXT UWORD clasB_uwADCCnt =0 ; CLASSB_EXT UWORD clasB_uwTIM1Cnt =0 ; CLASSB_EXT UWORD clasB_uwTIM2Cnt =0 ; CLASSB_EXT UWORD clasB_uwTIM3Cnt =0 ; CLASSB_EXT UWORD clasB_uwTIM4Cnt =0 ; CLASSB_EXT UWORD clasB_uwTIM6Cnt =0 ; CLASSB_EXT UWORD clas_uwADPhase1 = 0; CLASSB_EXT UWORD clas_uwADPhase1Pre = 0; CLASSB_EXT UWORD clas_uwADPhase2 = 0; CLASSB_EXT UWORD clas_uwADPhase2Pre = 0; CLASSB_EXT UWORD clas_uwADTc = 0; CLASSB_EXT UWORD clas_uwADTcPre = 4000; CLASSB_EXT UWORD clas_uwADVdc = 0; CLASSB_EXT UWORD clas_uwADVdcPre = 0; CLASSB_EXT UWORD clas_uwADVa = 0; CLASSB_EXT UWORD clas_uwADVaPre = 0; CLASSB_EXT UWORD clas_uwADVb = 0; CLASSB_EXT UWORD clas_uwADVbPre = 0; CLASSB_EXT UWORD clas_uwADVc = 0; CLASSB_EXT UWORD clas_uwADVcPre = 0; CLASSB_EXT ULONG clas_ulADTcErrCnt = 0; CLASSB_EXT UWORD clas_uwADTcErrCnt2 = 0; // CLASSB_EXT UWORD clas_uwADVdcErrCnt = 0; CLASSB_EXT ULONG clas_ulADVdcErrCnt = 0; CLASSB_EXT UWORD clas_uwADVdcErrCnt2 = 0; // CLASSB_EXT UWORD clas_uwADVaErrCnt = 0; // CLASSB_EXT UWORD clas_uwADVaErrCnt2 = 0; // CLASSB_EXT UWORD clas_uwADVbErrCnt = 0; // CLASSB_EXT UWORD clas_uwADVbErrCnt2 = 0; // CLASSB_EXT UWORD clas_uwADVcErrCnt = 0; // CLASSB_EXT UWORD clas_uwADVcErrCnt2 = 0; CLASSB_EXT UWORD clas_uwADPhase1ErrCnt = 0; CLASSB_EXT UWORD clas_uwADPhase1ErrCnt2 = 0; CLASSB_EXT UWORD clas_uwADPhase2ErrCnt = 0; CLASSB_EXT UWORD clas_uwADPhase2ErrCnt2 = 0; CLASSB_EXT UWORD clas_uwVrefErrCnt = 0; CLASSB_EXT UWORD class_uwTestFlg = 0; CLASSB_EXT SWORD clas_VrefintCal = 0; // ly CLASSB_EXT SWORD clas_VrefintData = 0; // ly CLASSB_EXT SWORD clas_VrefintDiff = 0; // ly CLASSB_EXT BOOL clas_blClockTestFlg = FALSE; CLASSB_EXT BOOL clas_blIntTestFlg = FALSE; CLASSB_EXT UWORD clas_uwCnts = 0; CLASSB_EXT UBYTE clas_ubIntCnts = 0; CLASSB_EXT UBYTE clas_ubTestSecFlg = 1; CLASSB_EXT ULONG calss_ulRtcCnt = 0; CLASSB_EXT ULONG calss_ulIntCnt = 0; CLASSB_EXT ULONG calss_ulRamCnt = 0; CLASSB_EXT BOOL clas_blIrqFlg = FALSE; #else #pragma location = ".CRCsection" CLASSB_EXT const uint32_t sect; CLASSB_EXT UBYTE clas_blclassBErrFlg; CLASSB_EXT UWORD clas_uwclassBErrCode; CLASSB_EXT UWORD clas_uwclassBErrCode1; CLASSB_EXT UBYTE clas_ubTBSFlg; CLASSB_EXT UBYTE clas_ubSystickFlg; CLASSB_EXT ULONG clas_ulLSIDifPeriod; CLASSB_EXT ULONG clas_DifPeriod; CLASSB_EXT UWORD clas_uwADPhase1; CLASSB_EXT UWORD clas_uwADPhase1Pre; CLASSB_EXT UWORD clas_uwADPhase2; CLASSB_EXT UWORD clas_uwADPhase2Pre; CLASSB_EXT CLASS_ERR_CODE clasB_unFaultCode; CLASSB_EXT UWORD clasB_uwADCCnt ; CLASSB_EXT UWORD clasB_uwTIM1Cnt ; CLASSB_EXT UWORD clasB_uwTIM2Cnt ; CLASSB_EXT UWORD clasB_uwTIM3Cnt ; CLASSB_EXT UWORD clasB_uwTIM4Cnt ; CLASSB_EXT UWORD clasB_uwTIM6Cnt ; CLASSB_EXT UWORD clas_uwADTc; CLASSB_EXT UWORD clas_uwADTcPre; CLASSB_EXT UWORD clas_uwADVdc; CLASSB_EXT UWORD clas_uwADVdcPre; CLASSB_EXT UWORD clas_uwADVa; CLASSB_EXT UWORD clas_uwADVaPre; CLASSB_EXT UWORD clas_uwADVb; CLASSB_EXT UWORD clas_uwADVbPre; CLASSB_EXT UWORD clas_uwADVc; CLASSB_EXT UWORD clas_uwADVcPre; CLASSB_EXT ULONG clas_ulADTcErrCnt; CLASSB_EXT UWORD clas_uwADTcErrCnt2; // CLASSB_EXT UWORD clas_uwADVdcErrCnt; CLASSB_EXT ULONG clas_ulADVdcErrCnt; CLASSB_EXT UWORD clas_uwADVdcErrCnt2; // CLASSB_EXT UWORD clas_uwADVaErrCnt; // CLASSB_EXT UWORD clas_uwADVaErrCnt2; // CLASSB_EXT UWORD clas_uwADVbErrCnt; // CLASSB_EXT UWORD clas_uwADVbErrCnt2; // CLASSB_EXT UWORD clas_uwADVcErrCnt; // CLASSB_EXT UWORD clas_uwADVcErrCnt2; CLASSB_EXT UWORD clas_uwADPhase1ErrCnt; CLASSB_EXT UWORD clas_uwADPhase1ErrCnt2; CLASSB_EXT UWORD clas_uwADPhase2ErrCnt; CLASSB_EXT UWORD clas_uwADPhase2ErrCnt2; CLASSB_EXT UWORD clas_uwVrefErrCnt; CLASSB_EXT UWORD class_uwTestFlg; CLASSB_EXT SWORD clas_VrefintCal; CLASSB_EXT SWORD clas_VrefintData; CLASSB_EXT SWORD clas_VrefintDiff; CLASSB_EXT BOOL clas_blClockTestFlg; CLASSB_EXT BOOL clas_blIntTestFlg; CLASSB_EXT UWORD clas_uwCnts; CLASSB_EXT UBYTE clas_ubIntCnts; CLASSB_EXT UBYTE clas_ubTestSecFlg; CLASSB_EXT ULONG calss_ulRtcCnt; CLASSB_EXT ULONG calss_ulIntCnt; CLASSB_EXT ULONG calss_ulRamCnt; CLASSB_EXT BOOL clas_blIrqFlg; #endif /************************************************************************ RAM ALLOCATION (N/A) *************************************************************************/ /************************************************************************ Exported Function Call Prototypes *************************************************************************/ /************************************************************************ Local Function Call Prototypes (N/A) *************************************************************************/ /************************************************************************ Flag Define (N/A) *************************************************************************/ #endif /************************************************************************ Copyright (c) 2017 Welling Motor Technology(Shanghai) Co. Ltd. All rights reserved. ************************************************************************* End of this File (EOF)! Do not put anything after this part! *************************************************************************/