![]() |
發(fā)布時間: 2024-6-17 09:58
正文摘要:主程序如下。目前數(shù)碼管顯示的數(shù)據(jù)是06666,這個是不正常的。這個程序是我仿照普中的DS18B20實驗來做的,預期是用DS18B20測溫,數(shù)碼管顯示數(shù)據(jù),保留一位小數(shù)。 目前顯示不正常,我首先是檢查DS18B20初始化是否有問 ... |
for(j=4;j<255;j--){ temp_buf[j]=duan_table[T_value/%10]; T_value/=T_value//10; } 以上幾行是不行的,首先 for循環(huán)函數(shù)內(nèi)j會始終小于255,不能跳出循環(huán)。另外temp_buf[j]=duan_table[T_value%10]; T_value=T_value/10;想得到什么結果? |
名字不是重點 發(fā)表于 2024-6-21 15:14 很奇怪復制粘貼的居然多了好幾個/ |
行不行試試就知道,但這行應該是不行的
|
代買里面怎么多了好幾個/? |
劉佑紅 發(fā)表于 2024-6-21 07:01
這樣是不是也行。 |
以下四句可以簡化。 temp_buf[1] = duan_table[T_value/1000]; temp_buf[2] = duan_table[T_value%1000/100]; temp_buf[3] = duan_table[T_value%1000%100/10]; //個位+小數(shù)點 temp_buf[4] = duan_table[T_value%1000%100%10]; 簡化為: temp_buf[1] = duan_table[T_value/1000]; temp_buf[2] = duan_table[T_value/100%10]; temp_buf[3] = duan_table[T_value/10%10]; temp_buf[4] = duan_table[T_value%10]; 簡化后代碼會減小,運行也會快些,畢竟除法求余數(shù)比較耗時。 |
樓主可以先刷我的程序看看硬件有沒有問題,然后再排查。 http://www.torrancerestoration.com/bbs/dpj-235842-1.html |
Powered by 單片機教程網(wǎng)