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