[经验] 瑞萨RL78 D1A 出现unsigned short 型变量赋值给浮点数错误的问题

jinandawei   2022-1-17 15:44 楼主

如题,具体型号:R5F10DLEJFB

 

代码和仿真时数据如图,包括下面的汇编指令:

Idiag = adValue;

如此简单的一条赋值指令出现这么奇怪的错误,真的是出乎我的意料。

float Idiag = 0;

值为0x17的adValue 赋值给浮点数变量Idiag之后,竟然变成了超级大的数。

最后浮点数改为4字节无符号整形,就可以了。

uint32_t Idiag = 0;

1642403349(1).jpg 1642403596(1).jpg    

正确的赋值截图:

image.png  

回复评论 (2)

那是因为存储的表示方法不同,浮点数不能直接使用整数的方法来读值

贴一个查到的解释

微信图片_20220117165422.png

 

点赞  2022-1-17 16:54

你可以再加一级验证,把Idiag(float)再赋值给其他整形变量,看这个变量数值正常吗

点赞  2022-1-17 17:01
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复