找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

51單片機驅動數(shù)碼管,顯示不對 發(fā)現(xiàn)在在Show里面四個數(shù)不對

查看數(shù): 1835 | 評論數(shù): 14 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2024-8-24 08:53

正文摘要:

發(fā)現(xiàn)在 FloatToNum(float fs)中數(shù)值還對,在show里面把四位數(shù)碼對應位置賦于數(shù)碼管碼值數(shù)組顯示數(shù)值的,但是數(shù)值就被改了。什么原因?感謝大俠指教!(附代碼),還有我調試時的四張圖。第一張圖是在 FloatToNum(flo ...

回復

ID:1109793 發(fā)表于 2024-8-29 10:55
glinfei 發(fā)表于 2024-8-28 10:37
1.如果值在ASCII范圍,就顯示ASCII,不在就顯示?
2.共陽的管子寫反了,應先關再賦值,否則會重影,估計8 ...

剛剛記錯了,不好意思,好像還真是,不在ASCII范圍就顯示?
ID:1109793 發(fā)表于 2024-8-29 10:52
glinfei 發(fā)表于 2024-8-28 10:37
1.如果值在ASCII范圍,就顯示ASCII,不在就顯示?
2.共陽的管子寫反了,應先關再賦值,否則會重影,估計8 ...

應該不是,你看截圖,上面三個一樣的值就沒有問號。樓主用的DATA,有?,我給改成CODE,也一樣有?的。沒整明白
ID:295726 發(fā)表于 2024-8-28 14:59
glinfei 發(fā)表于 2024-8-28 10:37
1.如果值在ASCII范圍,就顯示ASCII,不在就顯示?
2.共陽的管子寫反了,應先關再賦值,否則會重影,估計8 ...

感謝!我測試一下。
ID:844772 發(fā)表于 2024-8-28 10:37
1.如果值在ASCII范圍,就顯示ASCII,不在就顯示?
2.共陽的管子寫反了,應先關再賦值,否則會重影,估計8字筆畫亮度不同還閃爍。
ID:1109793 發(fā)表于 2024-8-27 07:35
lileisgns 發(fā)表于 2024-8-26 21:00
DigiValue的值在調試中怎么顯示時帶個‘?’號?
感謝!

這個我也不太懂啊,有知道的大神給解惑一下唄
ID:295726 發(fā)表于 2024-8-26 21:00

DigiValue[uFirst]的值在調試中怎么顯示時帶個‘?’號?
感謝!
ID:295726 發(fā)表于 2024-8-26 20:51

感謝!我用C++寫過軟件 ,現(xiàn)在調試都忘記看數(shù)碼管顯示的取值了。但是我數(shù)碼管顯示的8888.還閃爍。
ID:1109793 發(fā)表于 2024-8-26 14:55

輸出的結果也都對啊
ID:1109793 發(fā)表于 2024-8-26 12:01

模擬中這四個參數(shù)的值并沒有改變啊。
ID:295726 發(fā)表于 2024-8-26 10:25
xiaobendan001 發(fā)表于 2024-8-24 13:50
上面的是全局變量,顯示函數(shù)里面的參數(shù),是局部變量吧。雖然名字一樣,但是應該不是一個。

后面調用函數(shù)時傳入數(shù)值了。
ID:404160 發(fā)表于 2024-8-24 16:50
FloatToNum 函數(shù)中的精度問題:

當 fs 值在 10 到 100 之間時,uShu 被計算為 fs * 100,這可能導致精度損失,因為浮點數(shù)乘以 100 并向下取整可能不會得到精確的整數(shù)。


void FloatToNum(float fs) {
    // 根據(jù)fs的范圍確定乘數(shù)
    uint multiplier;
    if (fs >= 100) multiplier = 10;
    else if (fs >= 10) multiplier = 100;
    else multiplier = 1000;

    // 將fs轉換為整數(shù)后乘以相應的乘數(shù)
    uint temp = (uint)(fs * multiplier);

    // 四舍五入處理
    float remainder = fs - (int)fs;
    if (remainder >= 0.5f) {
        temp += 1;
    }

    // 計算各個位上的數(shù)值
    uFirst = temp / 1000;
    uSecond = (temp / 100) % 10;
    uThird = (temp / 10) % 10;
    uFour = temp % 10;
}
ID:1109793 發(fā)表于 2024-8-24 14:08
不對,你截圖顯示的就不是一個變量啊,雖然穿進去后不是一個,但是實際上也不會變啊。
ID:1109793 發(fā)表于 2024-8-24 13:50
上面的是全局變量,顯示函數(shù)里面的參數(shù),是局部變量吧。雖然名字一樣,但是應該不是一個。

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表