微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2640的sensor contrlloer数据定义求教

CC2640的sensor contrlloer数据定义求教

时间:10-02 整理:3721RD 点击:

我用CC2640的sensor contrlloer做SPI的任务,在初始化代码那里面,需要对外部设备初始化发送30个字节的数据,这30个字节是配置外部芯片用的,数据是固定的。我的想法是:使用input数据定义,然后在CCS工程里面定义一个常量数组,将数组数据赋值给input数据,然后用for循环发送:

for(U16 n=0;n<30;n++){

TempData =input.SPIFrameData[n] ;

spiTx8bit (SPI_POL0_PHA1,TempData);

fwDelayUs(90,FW_DELAY_RANGE_100_US);

}

 

这样就需要预先对input.SPIFrameData[n] 赋初值,应该是在我的CCS任务代码里面操作,可是我不知道具体应该在任务的哪里操作,怎样操作;我最先是放到任务的初始化部分前面的:

 scifOsalInit();
 scifOsalRegisterCtrlReadyCallback(scCtrlReadyCallback);
 scifOsalRegisterTaskAlertCallback(scTask1198AlertCallback);
 scifInit(&scifDriverSetup);

结果不行,任务启动后初始化发送的30个数都是0;

 

我试图在sensor contrlloer里面直接定义数组并发送,不使用input数据的方式,结果貌似不支持数组定义。

 

现在我该怎么办?有没有什么方法能让我在Initialization Code里面发送30个数?难道只能连续写30遍spiTx8bit (SPI_POL0_PHA1,TempData)?

你好,

Execution code里面右边有一个自定义的data structures。

data structures里面定义的是可自定义的数据,该数据可以定义为M3输入到SCE里面的数据,也可以是SCE输出给CC2640M3的数据。

以SCE的IIC例程为例子,他定义了输入输出的数据,定义是在scif.c文件里面。

用的话是在mian_tirtos.c文件里面。

套用到你的程序中,你亦可以定一个30个数字,初始化为输入,然后由sensor controller engine用。

你好,

谢谢您的回复,实际上 我就是采用的定义输入数据的方式做的,我定义之后可以在sci,h中看到的,如下:

typedef struct {
uint16_t SPIFrameData[30]; ///<
} SCIF_ADS1198_INPUT_T;

由于是初始化数据,因此应该是执行一次,所以必须在初始化任务时候就要赋值吧?

我现在是不知道何时何地该给这个输入赋值,该如何操作呢?

你好,

你可以参考sensor controller的例程。

在初始化中给这个input赋值,赋值完之后再启动SCE。

1157.main_tirtos.c

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top