一、多级界面要求
上面的要求进行简单化即为
二、代码实现
if(Disp_Mode==0)
{
sprintf(pucSeg_Buf,"%4.1f-%4u",Temperature_Val,(unsigned int)ucDist);
}
else if(Disp_Mode==1)
{
if(Parm_Mode==0)
{
sprintf(pucSeg_Buf,"P1 %2u",(unsigned int)ucDist_Parm);
}
else
{
sprintf(pucSeg_Buf,"P2 %2u",(unsigned int)ucTemperature_Pram);
}
}
else
{
if(Fact_Mode==0)
{
sprintf(pucSeg_Buf,"F1 %3d",Dist_Comp);
}
else if(Fact_Mode==1)
{
sprintf(pucSeg_Buf,"F2 %4u",(unsigned int)ucDist_Speed);
}
else
{
sprintf(pucSeg_Buf,"F3 %3.1f",DAC_Min);
}
}
三、按键与界面的协同
四、代码实现
void Key_Proc(void)
{
if(uiKey_Dly<20)
return;
uiKey_Dly=0;
ucKey_Val=Key_Read_KBD();
if(ucKey_Val==ucKey_Val_Old)
return;
switch(ucKey_Val)
{
case 4:
Disp_Mode=(Disp_Mode+1)%3;
if(Disp_Mode==1)
{
Parm_Mode=0;
}
else if(Disp_Mode==2)
{
Fact_Mode=0;
}
break;
case 5:
if(Disp_Mode==1)
{
Parm_Mode=(Parm_Mode+1)%2;
}
else if(Disp_Mode==2)
{
Fact_Mode=(Fact_Mode+1)%3;
}
break;
}
ucKey_Val_Old=ucKey_Val;//消抖
}