TI中文支持网
TI专业的中文技术问题搜集分享网站

在线仿真时,上位机显示long型数据在0附近波动会出现异常值65535

如题目所示,工程中有一个变量是long型的,按照设计它正常应该在5至-5之间波动,但是在线调试时发现它会出现65535这个异常值!

检查寄存器发现是由于高16位数据和低16位数据没有同时更新造成的,请问这样的问题应该如何回避,是我的嵌入式C程序设计的有问题吗?

Susan Yang:

请问您使用的是哪款芯片?若是可以的话,请给出您的代码或者私信一下您的工程

,

user6407498:

这个工程是一个电机驱动工程需要外接编码器并采样三项电流,如果直接将工程发给你,恐怕您也不能复现我的问题。

不知您是否方便使用teamviewer,或者其他远程桌面控制软件查看我的运行状态?

谢谢您的回复!

,

Susan Yang:

抱歉,我这边电脑暂时不能安装teamviewer。

“检查寄存器发现是由于高16位数据和低16位数据没有同时更新造成的”

若是可以的话,您可以详细说明一下,看是否能帮到您

,

user6407498:

你好,原谅我刚刚才复现了之前的问题,现做说明如下:

1、首先说明问题:在变量在线监测表中可以看到IqFdb这个变量的值可以出现-65514这个值,而根据我的设计,这是绝对不可能的,此时电流为0,它应该如上面的变量IdFdb所示,在几十–负几十之间波动。

2、给出我观察到的现象:

图中红框内的数据地址为0xd38c,也就是上面提到的那个会出现异常值的变量IqFdb,可以看到它的高16位此时没有更新(显示为黑色),值为0x0000;低16位更新了(显示为红色),值为0xFFF9,所以此时监控框内用了分别用了先后两个数据的高16位和低16位,拼接出的数据是"0x0000 FFF9"也就是“61433”,这绝对超出我的限值范围了!

3、我的推论:由于2中描述的现象,我认为是long型的变量高16位和低16位没有同时更新,导致的显示错误。而此时该变量的值应该是“0xFFFF FFF9”,也就是"-7"。

4、本次提问的目的:想咨询一下这种BUG大家也经常遇到吗?两个字节没有同时更新显示的问题是由什么引起的?应如何避免。毕竟我之前的工程当中没有出现这种情况。

**附加说明:由于操作困难,上面出现的两张截图不是同时截取的,所以变量的值不能对应上。

,

user6407498:

芯片型号是28379S

,

Susan Yang:

我们将在您最新的帖子内回复

赞(0)
未经允许不得转载:TI中文支持网 » 在线仿真时,上位机显示long型数据在0附近波动会出现异常值65535
分享到: 更多 (0)