dongfang 发表于 2024-4-10 09:54:24

求教关于c51数值计算的问题,求高人指教

本帖最后由 dongfang 于 2024-4-12 12:52 编辑

我用编码器计数,然后在液晶屏显示,实际值与编码器有一个比值,我在程序中加上比例转换就好显示就乱了,不知什么原因,


//      temp=temp/1.17;      
                if(temp<=7000)
                              {      

                                        temp1=temp;
                                        qian=temp1/1000;
                                        bai=temp1%1000/100;
                                        shi=temp1%100/10;      
                                        ge=temp1%10;
                         }

我只要加上 “temp=temp/1.17;”这条语句,显示乱了,忽大忽小,求高人指教

社区闲人 发表于 2024-4-10 10:52:32

temp=(float)temp/1.17;

xuzeabc 发表于 2024-4-10 11:08:08

在编译器中查一下汇编,看看原因

dongfang 发表于 2024-4-10 11:30:54

xuzeabc 发表于 2024-4-10 11:08
在编译器中查一下汇编,看看原因

谢谢,我几年前弄个一个类似的程序,很正常的,那时候用的是keil4,现在用的是keil5编译的,还真有可能是keil5的问题,12864的汉字库有几个汉字是用keil5编译就会出问题,我用keil4编译一下看看会不会出现奇迹,

soma 发表于 2024-4-10 12:22:50

可以用串口先输出temp的值,之后在计算/1.17作比较。

嵌入式之路 发表于 2024-4-10 14:00:58

我也觉得可能是数值转换的原因。 调试一下看看把

lezjin 发表于 2024-4-10 15:24:48

数据类型问题,%不能用于浮点数,

小飞侠 发表于 2024-4-10 15:58:09

嵌入式之路 发表于 2024-4-10 14:00
我也觉得可能是数值转换的原因。 调试一下看看把

应该是这个原因

jwd 发表于 2024-4-10 21:03:30

/1.17估计是这句的问题

lzl1okOK 发表于 2024-4-10 22:15:17

我都是先放大十倍再计算
页: [1] 2
查看完整版本: 求教关于c51数值计算的问题,求高人指教