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等定义的具体作用:
- int16 有符号16位整型
- int32 有符号32位整型
- int64 有符号64位整型(这是DSP28335的一个卖点,拥有完成64位数据处理的能力)
- Uint16 无符号位16位整型 (将原本int16的符号位转化为数据位,参与数据计算,因此数据量扩大2倍,原本是±32767,变为0 - 65536)
- Uint32 无符号位32位整型
- Uint64 无符号位64位整型
- float32 32位浮点型
- flota64 64位浮点型
电机控制里面,坐标变换、SVPWM、PI调节器等都是包含小数运算的,一般用浮点型较多,而包含数据逻辑运算,比如Hall传感器的数据提取,一般用整型的较多。
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等定义的具体作用:
- int16 有符号16位整型
- int32 有符号32位整型
- int64 有符号64位整型(这是DSP28335的一个卖点,拥有完成64位数据处理的能力)
- Uint16 无符号位16位整型 (将原本int16的符号位转化为数据位,参与数据计算,因此数据量扩大2倍,原本是±32767,变为0 - 65536)
- Uint32 无符号位32位整型
- Uint64 无符号位64位整型
- float32 32位浮点型
- flota64 64位浮点型
电机控制里面,坐标变换、SVPWM、PI调节器等都是包含小数运算的,一般用浮点型较多,而包含数据逻辑运算,比如Hall传感器的数据提取,一般用整型的较多。
举报