0
我很想将这些嵌套的if语句转换为开关, 我在这些(开关的情况下)使用有限状态机,并且每种情况都有自己的时间。 (基于AVR相关的项目。将嵌套转换为开关
for(i=1;i<17;i++)
{
Print_On_LCD_Pos(i,2," Humidity: 67%"); // just example
Print_On_LCD_Pos((i-1),2," ");
_delay_ms(600);
if(i==16)
{
for(j=16;j>0;j--)
{
Print_On_LCD_Pos(j,2,"Humidity:67%");
Print_On_LCD_Pos((j+13),2," ");
_delay_ms(200);
if(j==1)
{
Print_On_LCD_Pos(10,2," ");
_delay_ms(400);
Print_On_LCD_Pos(10,2,"67%");
_delay_ms(400);
Print_On_LCD_Pos(10,2," ");
_delay_ms(400);
Print_On_LCD_Pos(10,2,"67%");
_delay_ms(400);
}
}
}
}
我正为如何保持跟踪递增/递减变量没有案件在这里跨越共享数据。困境有点混乱,结果原来的开关就像你知道的有限状态机一样,它们按顺序运行,所以虽然情况1运行,但它可能与另一种情况共享一些数据,除非我放置了一些限制性的行为,但这些很像不必要的长代码。
任何人分享一个干净的做法吗?
这是什么语言? – Kevin 2014-11-24 15:58:04
嗨伙计,它是c,“Print_On_LCD_Pos(uint16_t x,uint16_t y,char * string_of_line)”是一个LCD函数,我用它在2x16十六进制LCD上显示数据。 – 2014-11-25 04:40:19