![]() |
發布時間: 2020-10-4 01:16
正文摘要:見下圖,這段C語言代碼要做一百多個if選擇,程序每運行一次會進入其中一個if語句,全部寫完會有上千行代碼,現在我已經寫出了兩個if選擇,用什么樣的代碼才能省掉這上千行代碼,同時又能實現程序功能呢?請大家指教 ... |
使用定時器可能效果更佳 |
qingyemurong 發表于 2020-10-4 22:31 之前做的電壓表,確實不需要那么多數值,ADC可以直接顯示,不過現在我做的溫度計,熱敏電阻是非線性的,所以要加這么多數值 |
yytda 發表于 2020-10-4 09:38 如果你的目的是把ADC值顯示出來,不需要那么多代碼嗎,也不需要要和數組對比,直接顯示不就可以了。 |
qingyemurong 發表于 2020-10-4 08:31 是用的數碼管顯示,我是新手,定時器沒用過,還不會用。我是把一百多個數值放在一個數組里面,temp是ADC采樣值,用temp的值和數組里面那一百多個數值做對比,對應上哪一個,就把哪一個顯示出來,就是不知道怎樣做一個循環,讓它自己掃描數組里面的值,我主貼里面截圖那種方法是最笨的方法,要復制一百多段,上千行代碼 |
有一百多個數值,被封裝在一個數組里面,用選擇語句掃描這一百多個數值,看temp的值對應數組里面哪一個數值,不知道該如何寫這個循環的代碼 |
本帖最后由 qingyemurong 于 2020-10-4 08:40 編輯 那個判斷語句應該都有問題, if(3.146>=temp&&temp>3.137) 目測你應該是使用了數碼管顯示,可不可以考慮數碼管刷新放在定時器里面,定義全局變量保存讀取的數值,那樣代碼就可以減少很多。 使用if嵌套,那樣應該是可以少定義一部分變量的,也可以減少代碼。 |
判斷語句不應該是這樣嗎 |
用對分查表法。 |