找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

51单片机驱动数码管,显示不对 发现在在Show里面四个数不对

查看数: 1909 | 评论数: 14 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2024-8-24 08:53

正文摘要:

发现在 FloatToNum(float fs)中数值还对,在show里面把四位数码对应位置赋于数码管码值数组显示数值的,但是数值就被改了。什么原因?感谢大侠指教!(附代码),还有我调试时的四张图。第一张图是在 FloatToNum(flo ...

回复

ID:1109793 发表于 2024-8-29 10:55
glinfei 发表于 2024-8-28 10:37
1.如果值在ASCII范围,就显示ASCII,不在就显示?
2.共阳的管子写反了,应先关再赋值,否则会重影,估计8 ...

刚刚记错了,不好意思,好像还真是,不在ASCII范围就显示?
ID:1109793 发表于 2024-8-29 10:52
glinfei 发表于 2024-8-28 10:37
1.如果值在ASCII范围,就显示ASCII,不在就显示?
2.共阳的管子写反了,应先关再赋值,否则会重影,估计8 ...

应该不是,你看截图,上面三个一样的值就没有问号。楼主用的DATA,有?,我给改成CODE,也一样有?的。没整明白
ID:295726 发表于 2024-8-28 14:59
glinfei 发表于 2024-8-28 10:37
1.如果值在ASCII范围,就显示ASCII,不在就显示?
2.共阳的管子写反了,应先关再赋值,否则会重影,估计8 ...

感谢!我测试一下。
ID:844772 发表于 2024-8-28 10:37
1.如果值在ASCII范围,就显示ASCII,不在就显示?
2.共阳的管子写反了,应先关再赋值,否则会重影,估计8字笔画亮度不同还闪烁。
ID:1109793 发表于 2024-8-27 07:35
lileisgns 发表于 2024-8-26 21:00
DigiValue的值在调试中怎么显示时带个‘?’号?
感谢!

这个我也不太懂啊,有知道的大神给解惑一下呗
ID:295726 发表于 2024-8-26 21:00
xiaobendan001 发表于 2024-8-26 14:55
输出的结果也都对啊

DigiValue[uFirst]的值在调试中怎么显示时带个‘?’号?
感谢!
ID:295726 发表于 2024-8-26 20:51
xiaobendan001 发表于 2024-8-26 14:55
输出的结果也都对啊

感谢!我用C++写过软件 ,现在调试都忘记看数码管显示的取值了。但是我数码管显示的8888.还闪烁。
ID:1109793 发表于 2024-8-26 14:55

输出的结果也都对啊
ID:1109793 发表于 2024-8-26 12:01

模拟中这四个参数的值并没有改变啊。
ID:295726 发表于 2024-8-26 10:25
xiaobendan001 发表于 2024-8-24 13:50
上面的是全局变量,显示函数里面的参数,是局部变量吧。虽然名字一样,但是应该不是一个。

后面调用函数时传入数值了。
ID:404160 发表于 2024-8-24 16:50
FloatToNum 函数中的精度问题:

当 fs 值在 10 到 100 之间时,uShu 被计算为 fs * 100,这可能导致精度损失,因为浮点数乘以 100 并向下取整可能不会得到精确的整数。


void FloatToNum(float fs) {
    // 根据fs的范围确定乘数
    uint multiplier;
    if (fs >= 100) multiplier = 10;
    else if (fs >= 10) multiplier = 100;
    else multiplier = 1000;

    // 将fs转换为整数后乘以相应的乘数
    uint temp = (uint)(fs * multiplier);

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

    // 计算各个位上的数值
    uFirst = temp / 1000;
    uSecond = (temp / 100) % 10;
    uThird = (temp / 10) % 10;
    uFour = temp % 10;
}
ID:1109793 发表于 2024-8-24 14:08
不对,你截图显示的就不是一个变量啊,虽然穿进去后不是一个,但是实际上也不会变啊。
ID:1109793 发表于 2024-8-24 13:50
上面的是全局变量,显示函数里面的参数,是局部变量吧。虽然名字一样,但是应该不是一个。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表