码迷,mamicode.com
首页 > 其他好文 > 详细

CANmonitor我自己编写的程序

时间:2020-01-22 12:50:54      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:速度   变量   符号   tar   需要   版本   在线的   一个   href   

这个版本的程序, 上位机可以对电机的转速进行在线的设定,同时上位机接受电机控制器上报的母线电压,电机温度,控制器温度等。

 

在调试的过程中我遇见了一个问题,电机的转速的采样 。

根据协议:电机的转速为16位有符号数。我需要将两个字节合并成一个字进行显示。

我的做法是:有符号数 他的范围是-32768------32767

因为最高位是符号位 ,所以我采用先将两个字节拼接成一个字,然后

 

VB中的right (abcdef,2)表示取出字符串右边的两个字符。

Cint("&h"&text15.text) 表示将拼接的字符转换为16位有符号数 即Cint

Int 代表integer .

技术图片

 

 

 

 

对电机转速采样的修改

我的方法是 先查看了 谭浩强 C语言中 的整形数

确定了 负数 -32768 在内存中的存放形式为 1000 0000 0000 0000

至于为什么是这个形式,你下去再做分析。

 

我假设在11号邮箱中

EcanaMboxes.MBOX11.MDL.word.LOW_WORD=(int16)_IQtoIQ15(Wm_filter);

 

即我认为DSP2812 上传给VB上位机的速度信息就是一个 有符号数

 

假设DSP上传的数据 为 1000 0000 0000 0000 即 0x8000

我在VB上位机显示 应该是 -32768

 

 

于是在 VB的formload 事件里 定义一个变量

Dim tempaaaa As Integer tempaaa 为定义的16位有符号数,范围-32768--32767

 

tempaaa = &H8000

 

MorphLCD1(1).Value = Val(tempaaa)

 

 

如下图:

技术图片

 

 

 

运行结果为:

技术图片

 

 

百度网盘

CANmonitor我自己编写的程序

标签:速度   变量   符号   tar   需要   版本   在线的   一个   href   

原文地址:https://www.cnblogs.com/bailongwei654321/p/12228311.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!