杨为民 发表于 2024-3-29 02:31:53

xiangzichen 发表于 2024-3-28 23:41
对,C51有时候就是乱七八糟,记得以前有个项目,做了个移位,1

“莫非C51默认1是bit吗?” 别它的猜默认是什么,直接用强制类型告诉它你的是什么




社区闲人 发表于 2024-3-29 09:21:16

实际上,KEIL C251是支持double 变量的。
C251想要使用64位变量,需要在程序文件里面添加申明:#pragma float64
再用 double 定义变量。

xiangzichen 发表于 2024-3-29 09:40:04

杨为民 发表于 2024-3-29 02:31
“莫非C51默认1是bit吗?” 别它的猜默认是什么,直接用强制类型告诉它你的是什么




是啊,那次之后,无论啥地方,我都会加上我需要的强制类型

AI-32位8051 发表于 2024-3-29 09:40:56

硬件三角函数运算器, 硬件浮点运算器, 追风剑-STC32F12K64-64MHz
32位8051内置硬件:三角函数运算器,浮点运算器,250MHz-PWM
STC32F12K54-64MHz-LQFP48,
LQFP48/32, QFN48/32, TSSOP20, 封装,初期优选 LQFP48
STC32位8051,STC32F12K54-64MHz 内含如下硬件运算器:
1,硬件三角函数运算器,支持
    【正弦函数/sin,余弦函数/cos,正切函数/tan,反正切函数/arctan】;
2,硬件单精度浮点运算器,提供了快速的单精度浮点运算。
      FPMU支持单精度浮点数的加、减、乘、除、开方和比较,
      支持整数类型和单精度浮点数之间的转换。


@jian_yu 发表于 2024-3-29 12:40:40

社区闲人 发表于 2024-3-28 14:58
在keil c251上测试了下




这个我是在连接了实物电路板之后,开debug实物仿真才发现的问题,之前用串口把数据发出来也是不对,开了仿真才发现有这个问题,
连接实物仿真调试




但是我的debug虚拟仿真就能正确计算出来
debug虚拟仿真



杨为民 发表于 2024-3-30 00:15:11

@jian_yu 发表于 2024-3-29 12:40
这个我是在连接了实物电路板之后,开debug实物仿真才发现的问题,之前用串口把数据发出来也是不对,开了 ...

为你的探索精神点赞。你研究了两种方法,实物仿真和虚拟仿真,你给出的结果也是事实。
那么你能不能不用仿真方法,你再其他的方法,比如用简单“printf”函数把它显示出来。如果还是出错,就把程序发上来我们一起研究。
我的验证程序结果是正确的,没有说服力,也没有意思,就像早上太阳会出来一样。
你把出错的程序发上来,这就有说服力,就有探究意思了,就像早上太阳没有出来一样,大家一起去看,弄个究竟。

小涵子爸爸 发表于 2024-3-30 08:15:25

学习了

小飞侠 发表于 2024-3-30 08:47:20

确实这种问题不太容易发现,所以写程序时还是尽量注意语法

@jian_yu 发表于 2024-3-30 14:06:57

杨为民 发表于 2024-3-30 00:15
为你的探索精神点赞。你研究了两种方法,实物仿真和虚拟仿真,你给出的结果也是事实。
那么你能不能不用 ...

谢谢杨工的指导,昨天在找资料就隐隐约约的觉得,程序肯定没问题的,那么就有可能是keil软件设定有问题了,找了一圈发现是Options里面target页面的Memory model设置有问题,我用的tiny ,现在换成了Xsmal就没有问题了
页: 1 [2]
查看完整版本: 夭寿啊,STC32G12K128芯片的cos(0)=0