📄 systemprocess.c
字号:
{
case 0:
{
}break;
case 1:
{
DM.ucCalibrationMode = 0x05;
}break;
}
}break;
case 9:
{
SM.LcdCtl.PagePtr=NomMaxPages+5;
DM.tmpPtr[0]=2;
switch(DM.ucKeyCalibrationStep)
{
case 0:
{
}break;
case 1:
{
DM.ucCalibrationMode = 0x06;
}break;
}
}break;
case 10:
{
SM.LcdCtl.PagePtr=NomMaxPages+6;
DM.tmpPtr[0]=2;
switch(DM.ucKeyCalibrationStep)
{
case 0:
{
}break;
case 1:
{
DM.ucCalibrationMode = 0x07;
}break;
}
}break;
case 11:
{
SM.LcdCtl.PagePtr=NomMaxPages+6;
DM.tmpPtr[0]=2;
switch(DM.ucKeyCalibrationStep)
{
case 0:
{
}break;
case 1:
{
DM.ucCalibrationMode = 0x08;
}break;
}
}break;
case 12:
{
SM.LcdCtl.PagePtr=NomMaxPages+8;
DM.tmpPtr[0]=2;
switch(DM.ucKeyCalibrationStep)
{
case 0:
{
}break;
case 1:
{
DM.ucCalibrationMode = 0x09;
}break;
}
}break;
#endif
}
}
void CalibrationOperationSub(long value)
{
#ifdef TAMPER_DETECTION
switch(DM.ucKeyCalibrationStep)
{
case 1:{
SM.Cfg.EspPar.uiAdaptI1 += value;
if(SM.Cfg.EspPar.uiAdaptI1<0x4000)
{
SM.Cfg.EspPar.uiAdaptI1=0x4000;
}
if(SM.Cfg.EspPar.uiAdaptI1>0x7FFF)
{
SM.Cfg.EspPar.uiAdaptI1=0x7FFF;
}
}break;
case 2:{
SM.Cfg.EspPar.uiAdaptI2 += value;
if(SM.Cfg.EspPar.uiAdaptI2<0x4000)
{
SM.Cfg.EspPar.uiAdaptI2=0x4000;
}
if(SM.Cfg.EspPar.uiAdaptI2>0x7FFF)
{
SM.Cfg.EspPar.uiAdaptI2=0x7FFF;
}
}break;
case 3:{SM.Cfg.EspPar.uiGainCorr1 += value; }break;
case 4:{SM.Cfg.EspPar.lPowerOffset1 += value; }break;
case 5:{SM.Cfg.EspPar.iPhaseCorr1 += value; }break;
case 6:{SM.Cfg.EspPar.uiGainCorr2 += value; }break;
case 7:{SM.Cfg.EspPar.lPowerOffset2 += value; }break;
case 8:{SM.Cfg.EspPar.iPhaseCorr2 += value; }break;
case 9:{SM.Cfg.EspPar.uiV1Gain += value; }break;
case 10:{SM.Cfg.EspPar.ulIGain += value; }break;
case 11:{SM.Cfg.EspPar.iTempSampleOffset += value; }break;
//case 13:{SM.Cfg.EspPar.iV1Offset += value; }break;
//case 14:{SM.Cfg.EspPar.iI1Offset += value; }break;
//case 15:{SM.Cfg.EspPar.iI2Offset += value; }break;
}
#else
switch(DM.ucKeyCalibrationStep)
{
case 1:{SM.Cfg.EspPar.uiGainCorr1 += value; }break;
case 2:{SM.Cfg.EspPar.lPowerOffset1 += value; }break;
case 3:{SM.Cfg.EspPar.iPhaseCorr1 += value; }break;
case 4:{SM.Cfg.EspPar.uiV1Gain += value; }break;
case 5:{SM.Cfg.EspPar.ulIGain += value; }break;
case 6:{SM.Cfg.EspPar.iTempSampleOffset += value; }break;
//case 7:{SM.Cfg.EspPar.iV1Offset += value; }break;
//case 8:{SM.Cfg.EspPar.iI1Offset += value; }break;
}
#endif
}
void KEY_Process(void)
{
SystemEventFlag &= ~SYSTEM_KEY_FLAG;
TACCR2 = TAR+32768;
TACCTL2 = CCIE;
switch(DM.ucKeyFlg)
{
case KEY_UP_FLAG:
{
DM.ucKeyFlg &= ~KEY_UP_FLAG;
switch(DM.ucKeyMode)
{
case 0:
{
SM.LcdCtl.PagePtr--;SM.LcdCtl.SecCtr=0;
if(SM.LcdCtl.PagePtr==0xFF)SM.LcdCtl.PagePtr=NomMaxPages;
}break;
case 1:
{
DM.ucKeyCalibrationMode++;
if(DM.ucKeyCalibrationMode>3)
{
DM.ucKeyCalibrationStep=0;
DM.ucEspCalStep = 0;
}
if(DM.ucKeyCalibrationMode>METCHK_MODE)
{
DM.ucKeyCalibrationMode=0;
DM.ucKeyCalibrationStep=1;
SystemEventFlag |= SYSTEM_ESPPARAM_FLAG;
//DM.uc_KeyCalibrationStep=0;
}
CalibrationLcdPtr();
}break;
}
}break;
case KEY_DOWN_FLAG:
{
DM.ucKeyFlg &= ~KEY_DOWN_FLAG;
switch(DM.ucKeyMode)
{
case 0:
{
SM.LcdCtl.PagePtr++;SM.LcdCtl.SecCtr=0;
if(SM.LcdCtl.PagePtr>NomMaxPages)SM.LcdCtl.PagePtr=0;
}break;
case 1:
{
switch(DM.ucKeyCalibrationMode)
{
case 0:
{
}break;
case 1:
{
DM.ucKeyCalibrationStep++;
SM.LcdCtl.PagePtr++;
if(DM.ucKeyCalibrationStep>CALNUM)
{
DM.ucKeyCalibrationStep=1;
SM.LcdCtl.PagePtr=NomMaxPages+1;
}
}break;
case 2:
{
CalibrationOperationSub(1);
if(DM.ucKeyCalibrationStep<ESPPAR_CHGSTP)
{
SystemEventFlag |= SYSTEM_ESPPARAM_FLAG;
}
}break;
case 3:
{
CalibrationOperationSub(-1);
if(DM.ucKeyCalibrationStep<ESPPAR_CHGSTP)
{
SystemEventFlag |= SYSTEM_ESPPARAM_FLAG;
}
}break;
#ifndef TAMPER_DETECTION
case 4:
case 5:
case 6:
case 7:
case 8:
{
DM.ucKeyCalibrationStep++;
if(DM.ucKeyCalibrationStep>1)
{
DM.ucKeyCalibrationStep = 0;
}
}break;
#else
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
case 11:
case 12:
{
DM.ucKeyCalibrationStep++;
if(DM.ucKeyCalibrationStep>1)
{
DM.ucKeyCalibrationStep = 0;
}
}break;
#endif
}
CalibrationLcdPtr();
}break;
}
}break;
case KEY_REMOVE_FLAG:
{
DM.ucKeyFlg &= ~KEY_REMOVE_FLAG;
}break;
}
SystemEventFlag |= SYSTEM_LCD_FLAG;
}
//*********************************************************************************
//
//
//
//
//*********************************************************************************
void LCD_Process(void)
{
SystemEventFlag &= ~SYSTEM_LCD_FLAG;
//Update_Display(SM.LcdCtl.PagePtr);
Update_Display();
}
void Calibration_Process(void)
{
Set_IdleMode();
Init_ESP_Parameter();
Start_Measurement();
SystemEventFlag &= ~SYSTEM_ESPPARAM_FLAG;
}
void EspParaSave_Process(void)
{
WDTCTL = WDT_ARST_1000;
_DINT();
SM.CfgChk=ChkSum((unsigned char *)&SM.Cfg, sizeof(SM.Cfg));
FlashWtBlock( (unsigned char *)0x1000, (unsigned char *)&SM.Cfg, sizeof(SM.Cfg)+2 );
SystemEventFlag &= ~SYSTEM_ESPPARASAVE_FLAG;
_EINT();
}
void DataSave_Process(void)
{
unsigned char *ptr;
WDTCTL = WDT_ARST_1000;
if(MeterRunState & MAIN_VOLTAGE_ON)
{
FCTL2 = FWKEY+FSSEL1+FN4+FN3+FN2+FN1+FN0;
}
else
{
FCTL2 = FWKEY+FSSEL1+FN1;
}
if(*(unsigned char *)0x1080==0xFF)
{
ptr = (unsigned char *)0x1080;
}
else if(*(unsigned char *)0x10C0==0xFF)
{
ptr = (unsigned char *)0x10C0;
}
else
{
FlashClear( (unsigned char *)0x1080 );
ptr = (unsigned char *)0x1080;
}
FlashWtBlock( ptr, (unsigned char *)&SM.CMon, sizeof(SM.CMon)+34 );
SystemEventFlag &= ~SYSTEM_DATASAVE_FLAG;
}
void MinuteProcess(void)
{
SystemEventFlag &= ~SYSTEM_MINUTE_FLAG;
}
void HourProcess(void)
{
SystemEventFlag &= ~SYSTEM_HOUR_FLAG;
}
void DayProcess(void)
{
SystemEventFlag &= ~SYSTEM_DAY_FLAG;
}
void MonthProcess(void)
{
SystemEventFlag &= ~SYSTEM_MONTH_FLAG;
}
void YearProcess(void)
{
SystemEventFlag &= ~SYSTEM_YEAR_FLAG;
}
void Task_No()
{
SystemEventFlag &= ~0x8000;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -