DSP中的C语言(一)——int16、Uint16、float32等定义的用法和区别

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:24   4038   0

1、int16、Uint16、float32等数据类型

以一个代码段进行说明,这个是DSP28335对与int16等的一个定义。

#ifndef DSP28_DATA_TYPES
#define DSP28_DATA_TYPES
typedef int                int16;
typedef long               int32;
typedef long long          int64;
typedef unsigned int       Uint16;
typedef unsigned long      Uint32;
typedef unsigned long long Uint64;
typedef float              float32;
typedef long double        float64;
#endif

这里先说一下 typedef 的作用,typedef 的作用是给一个变量类型重新命名,那么实际上述语句的作用是将关键字,int、long、long long等重新命名一遍。

在单片机编程中,不同的关键字所对应的数值范围是不一样。具体如下表所示,其中32位和64位的编译器较为常用。

因此,将代码部分一一对应即可理解int16等定义的具体作用:

  1. int16 有符号16位整型
  2. int32 有符号32位整型
  3. int64 有符号64位整型(这是DSP28335的一个卖点,拥有完成64位数据处理的能力)
  4. Uint16 无符号位16位整型 (将原本int16的符号位转化为数据位,参与数据计算,因此数据量扩大2倍,原本是±32767,变为0 - 65536)
  5. Uint32 无符号位32位整型
  6. Uint64 无符号位64位整型
  7. float32 32位浮点型 (浮点型讲解可以看看这篇博客https://blog.csdn.net/qq_44543508/article/details/101982298
  8. flota64 64位浮点型

电机控制里面,坐标变换、SVPWM、PI调节器等都是包含小数运算的,一般用浮点型较多,而包含数据逻辑运算,比如Hall传感器的数据提取,一般用整型的较多。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP