久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 51單片機(jī)驅(qū)動(dòng)數(shù)碼管,顯示不對(duì) 發(fā)現(xiàn)在在Show里面四個(gè)數(shù)不對(duì) [打印本頁]

作者: lileisgns    時(shí)間: 2024-8-24 08:53
標(biāo)題: 51單片機(jī)驅(qū)動(dòng)數(shù)碼管,顯示不對(duì) 發(fā)現(xiàn)在在Show里面四個(gè)數(shù)不對(duì)
發(fā)現(xiàn)在 FloatToNum(float fs)中數(shù)值還對(duì),在show里面把四位數(shù)碼對(duì)應(yīng)位置賦于數(shù)碼管碼值數(shù)組顯示數(shù)值的,但是數(shù)值就被改了。什么原因?感謝大俠指教!(附代碼),還有我調(diào)試時(shí)的四張圖。第一張圖是在 FloatToNum(float fs)中數(shù)值,第 二張是在SHOW中剛進(jìn)行沒有在數(shù)碼管真值表里找值時(shí)的 uFirstuSeconduThird,uFour的值,第三張是在數(shù)碼管真值表里找值時(shí)四個(gè)數(shù)的值(被改變了。)

在轉(zhuǎn)換函數(shù)里的值.jpg (28.84 KB, 下載次數(shù): 16)

在轉(zhuǎn)換函數(shù)里的值.jpg

在顯示函數(shù)里的初值.jpg (37.45 KB, 下載次數(shù): 14)

在顯示函數(shù)里的初值.jpg

在顯示函數(shù)里的后值.jpg (39.09 KB, 下載次數(shù): 14)

在顯示函數(shù)里的后值.jpg

代碼.zip

910 Bytes, 下載次數(shù): 10


作者: xiaobendan001    時(shí)間: 2024-8-24 13:50
上面的是全局變量,顯示函數(shù)里面的參數(shù),是局部變量吧。雖然名字一樣,但是應(yīng)該不是一個(gè)。
作者: xiaobendan001    時(shí)間: 2024-8-24 14:08
不對(duì),你截圖顯示的就不是一個(gè)變量啊,雖然穿進(jìn)去后不是一個(gè),但是實(shí)際上也不會(huì)變啊。
作者: 飛云居士    時(shí)間: 2024-8-24 16:50
FloatToNum 函數(shù)中的精度問題:

當(dāng) fs 值在 10 到 100 之間時(shí),uShu 被計(jì)算為 fs * 100,這可能導(dǎo)致精度損失,因?yàn)楦↑c(diǎn)數(shù)乘以 100 并向下取整可能不會(huì)得到精確的整數(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轉(zhuǎn)換為整數(shù)后乘以相應(yīng)的乘數(shù)
    uint temp = (uint)(fs * multiplier);

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

    // 計(jì)算各個(gè)位上的數(shù)值
    uFirst = temp / 1000;
    uSecond = (temp / 100) % 10;
    uThird = (temp / 10) % 10;
    uFour = temp % 10;
}
作者: lileisgns    時(shí)間: 2024-8-26 10:25
xiaobendan001 發(fā)表于 2024-8-24 13:50
上面的是全局變量,顯示函數(shù)里面的參數(shù),是局部變量吧。雖然名字一樣,但是應(yīng)該不是一個(gè)。

后面調(diào)用函數(shù)時(shí)傳入數(shù)值了。
作者: xiaobendan001    時(shí)間: 2024-8-26 12:01

模擬中這四個(gè)參數(shù)的值并沒有改變啊。

作者: xiaobendan001    時(shí)間: 2024-8-26 14:55

輸出的結(jié)果也都對(duì)啊

作者: lileisgns    時(shí)間: 2024-8-26 20:51
xiaobendan001 發(fā)表于 2024-8-26 14:55
輸出的結(jié)果也都對(duì)啊

感謝!我用C++寫過軟件 ,現(xiàn)在調(diào)試都忘記看數(shù)碼管顯示的取值了。但是我數(shù)碼管顯示的8888.還閃爍。

作者: lileisgns    時(shí)間: 2024-8-26 21:00
xiaobendan001 發(fā)表于 2024-8-26 14:55
輸出的結(jié)果也都對(duì)啊

DigiValue[uFirst]的值在調(diào)試中怎么顯示時(shí)帶個(gè)‘?’號(hào)?
感謝!
作者: lileisgns    時(shí)間: 2024-8-26 23:03
這是輸出數(shù)碼管的顯示

數(shù)碼管顯示.jpg (256.88 KB, 下載次數(shù): 12)

數(shù)碼管顯示.jpg

作者: xiaobendan001    時(shí)間: 2024-8-27 07:35
lileisgns 發(fā)表于 2024-8-26 21:00
DigiValue的值在調(diào)試中怎么顯示時(shí)帶個(gè)‘?’號(hào)?
感謝!

這個(gè)我也不太懂啊,有知道的大神給解惑一下唄
作者: glinfei    時(shí)間: 2024-8-28 10:37
1.如果值在ASCII范圍,就顯示ASCII,不在就顯示?
2.共陽的管子寫反了,應(yīng)先關(guān)再賦值,否則會(huì)重影,估計(jì)8字筆畫亮度不同還閃爍。

作者: lileisgns    時(shí)間: 2024-8-28 14:59
glinfei 發(fā)表于 2024-8-28 10:37
1.如果值在ASCII范圍,就顯示ASCII,不在就顯示?
2.共陽的管子寫反了,應(yīng)先關(guān)再賦值,否則會(huì)重影,估計(jì)8 ...

感謝!我測試一下。
作者: xiaobendan001    時(shí)間: 2024-8-29 10:52
glinfei 發(fā)表于 2024-8-28 10:37
1.如果值在ASCII范圍,就顯示ASCII,不在就顯示?
2.共陽的管子寫反了,應(yīng)先關(guān)再賦值,否則會(huì)重影,估計(jì)8 ...

應(yīng)該不是,你看截圖,上面三個(gè)一樣的值就沒有問號(hào)。樓主用的DATA,有?,我給改成CODE,也一樣有?的。沒整明白
作者: xiaobendan001    時(shí)間: 2024-8-29 10:55
glinfei 發(fā)表于 2024-8-28 10:37
1.如果值在ASCII范圍,就顯示ASCII,不在就顯示?
2.共陽的管子寫反了,應(yīng)先關(guān)再賦值,否則會(huì)重影,估計(jì)8 ...

剛剛記錯(cuò)了,不好意思,好像還真是,不在ASCII范圍就顯示?




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲一区二区在线播放 | 欧美精品二区三区四区免费看视频 | 国产一区高清 | 免费av在线 | 欧美操 | 国产一区二区精品丝袜 | 一区二区视频在线 | 日韩成人片 | 午夜影视剧场 | 他揉捏她两乳不停呻吟动态图 | 超碰777| 久久99久久久 | av免费网站 | 神马九九 | 亚洲精品久久久久avwww潮水 | 福利影院在线观看 | 亚洲一区在线看 | 懂色av成人一区二区三区 | 福利视频午夜 | 色综合久久88色综合天天 | 99视频网站| 天天干天天操天天插 | 日韩av在线网址 | 性生活毛片 | 欧美aaaaa | 国产精品久久久久久久久久久久久久久 | 国产精品一区二区av | 天堂一区二区三区 | 香蕉视频网站 | 成人3d动漫 | 色婷婷av一区二区 | 久久久亚洲天堂 | 日本在线观看网站 | 中文字幕一二区 | 日日夜夜狠狠干 | 国 产 黄 色 大 片 | 成人在线视频免费 | av福利在线| 国产一级免费视频 | 国产美女久久 | 国产又粗又长又爽 |