TI中文支持网
TI专业的中文技术问题咨询交流网站

如何通过XINTF读取外部设备的数据(C程序编写)

XINTF的时序配置已通过看文档《TMS320x2833x 2823x DSC External Interface(XINTF) Reference Guide》明白,但不知道具体怎么编程读写数。

采用的芯片为TMS320F28335。

假设所要读取的数据的格式为16位二进制补码(整数),地址0x004000,对应XINTF的zone 0的第一个地址;
假设XINTF的时序配置完成且正确。

看到一些程序里采用类似如下的形式读入:
int16 a;
unsigned int * Data1 = (unsigned int *)0x004000;
a = * Data1;
即地址指针为指向无符号整型
这样写有没有问题?

是否可以这样写:
int16 a;
int16 * Data1 = (int16 *)0x004000;
a = * Data1;
也就是说地址指针为指向有符号整型

TI公司有没有提供规范的写法?

Johnson Chen1:

楼主你好.

两种写法都可以,具体有符号还是无符号,取决于你要读的地址里放的数据的数据类型,

XINTF的时序配置已通过看文档《TMS320x2833x 2823x DSC External Interface(XINTF) Reference Guide》明白,但不知道具体怎么编程读写数。

采用的芯片为TMS320F28335。

假设所要读取的数据的格式为16位二进制补码(整数),地址0x004000,对应XINTF的zone 0的第一个地址;
假设XINTF的时序配置完成且正确。

看到一些程序里采用类似如下的形式读入:
int16 a;
unsigned int * Data1 = (unsigned int *)0x004000;
a = * Data1;
即地址指针为指向无符号整型
这样写有没有问题?

是否可以这样写:
int16 a;
int16 * Data1 = (int16 *)0x004000;
a = * Data1;
也就是说地址指针为指向有符号整型

TI公司有没有提供规范的写法?

rufeng Jing:

回复 Johnson Chen1:

请问TI公司有没有涉及这类操作的说明文档或例程可供参考?

XINTF的时序配置已通过看文档《TMS320x2833x 2823x DSC External Interface(XINTF) Reference Guide》明白,但不知道具体怎么编程读写数。

采用的芯片为TMS320F28335。

假设所要读取的数据的格式为16位二进制补码(整数),地址0x004000,对应XINTF的zone 0的第一个地址;
假设XINTF的时序配置完成且正确。

看到一些程序里采用类似如下的形式读入:
int16 a;
unsigned int * Data1 = (unsigned int *)0x004000;
a = * Data1;
即地址指针为指向无符号整型
这样写有没有问题?

是否可以这样写:
int16 a;
int16 * Data1 = (int16 *)0x004000;
a = * Data1;
也就是说地址指针为指向有符号整型

TI公司有没有提供规范的写法?

Eric Ma:

rufeng,

我认为这两种写法都可以。其实这只是定义一下你的数据类型而已。跟定义一个全局变量 int a; 和Uint16 a是一样的道理,都是使用一个存储单元,只不过是用不同的数据类型而已。

Eric

XINTF的时序配置已通过看文档《TMS320x2833x 2823x DSC External Interface(XINTF) Reference Guide》明白,但不知道具体怎么编程读写数。

采用的芯片为TMS320F28335。

假设所要读取的数据的格式为16位二进制补码(整数),地址0x004000,对应XINTF的zone 0的第一个地址;
假设XINTF的时序配置完成且正确。

看到一些程序里采用类似如下的形式读入:
int16 a;
unsigned int * Data1 = (unsigned int *)0x004000;
a = * Data1;
即地址指针为指向无符号整型
这样写有没有问题?

是否可以这样写:
int16 a;
int16 * Data1 = (int16 *)0x004000;
a = * Data1;
也就是说地址指针为指向有符号整型

TI公司有没有提供规范的写法?

rufeng Jing:

回复 Eric Ma:

Eric Ma

rufeng,

我认为这两种写法都可以。其实这只是定义一下你的数据类型而已。跟定义一个全局变量 int a; 和Uint16 a是一样的道理,都是使用一个存储单元,只不过是用不同的数据类型而已。

Eric

XINTF的时序配置已通过看文档《TMS320x2833x 2823x DSC External Interface(XINTF) Reference Guide》明白,但不知道具体怎么编程读写数。

采用的芯片为TMS320F28335。

假设所要读取的数据的格式为16位二进制补码(整数),地址0x004000,对应XINTF的zone 0的第一个地址;
假设XINTF的时序配置完成且正确。

看到一些程序里采用类似如下的形式读入:
int16 a;
unsigned int * Data1 = (unsigned int *)0x004000;
a = * Data1;
即地址指针为指向无符号整型
这样写有没有问题?

是否可以这样写:
int16 a;
int16 * Data1 = (int16 *)0x004000;
a = * Data1;
也就是说地址指针为指向有符号整型

TI公司有没有提供规范的写法?

Eric Ma:

回复 rufeng Jing:

rufeng,

是的,我是这么认为的。通过XINTF读取外面的16位数据,这个数据是无符号位还是带符号位,由你的程序认定。

Eric

XINTF的时序配置已通过看文档《TMS320x2833x 2823x DSC External Interface(XINTF) Reference Guide》明白,但不知道具体怎么编程读写数。

采用的芯片为TMS320F28335。

假设所要读取的数据的格式为16位二进制补码(整数),地址0x004000,对应XINTF的zone 0的第一个地址;
假设XINTF的时序配置完成且正确。

看到一些程序里采用类似如下的形式读入:
int16 a;
unsigned int * Data1 = (unsigned int *)0x004000;
a = * Data1;
即地址指针为指向无符号整型
这样写有没有问题?

是否可以这样写:
int16 a;
int16 * Data1 = (int16 *)0x004000;
a = * Data1;
也就是说地址指针为指向有符号整型

TI公司有没有提供规范的写法?

rufeng Jing:

回复 Eric Ma:

“int16 a;unsigned int * Data1 = (unsigned int *)0x004000;a = * Data1;即地址指针为指向无符号整型这样写有没有问题?

针对前面的情况,实际上0x004000里的数据是补码,及带有符号的

那通过a = * Data1;将其读入,虽然中间存在强制类型转化,但该补码数在读入时是否会先被当做无符号数处理?

如果处理了,这个数是否会改变(符号位如何处理)?

再通过强制类型转换,将无符号整型转换为有符号整型,TI的DSP算法是如何处理这个符号位的呢?

XINTF的时序配置已通过看文档《TMS320x2833x 2823x DSC External Interface(XINTF) Reference Guide》明白,但不知道具体怎么编程读写数。

采用的芯片为TMS320F28335。

假设所要读取的数据的格式为16位二进制补码(整数),地址0x004000,对应XINTF的zone 0的第一个地址;
假设XINTF的时序配置完成且正确。

看到一些程序里采用类似如下的形式读入:
int16 a;
unsigned int * Data1 = (unsigned int *)0x004000;
a = * Data1;
即地址指针为指向无符号整型
这样写有没有问题?

是否可以这样写:
int16 a;
int16 * Data1 = (int16 *)0x004000;
a = * Data1;
也就是说地址指针为指向有符号整型

TI公司有没有提供规范的写法?

Eric Ma:

回复 rufeng Jing:

fufeng,

如果存储单元里面是带符号位的数据,那我认为直接定义 int * 指针,然后定义一个 int16 变量存储该数据。

Eric

赞(0)
未经允许不得转载:TI中文支持网 » 如何通过XINTF读取外部设备的数据(C程序编写)
分享到: 更多 (0)