请教各位
8331在开发时 使用手动模式(程序如task1),连续100次采集单通道数据 是没有问题的;但是现在想循环采集4个通道的数据,改写成task2,采集回来的数据是每通道采两次(描述成通道形式就是 channel0、0、1、1、2、2、3、3、0、0......),如果将ADS8331X_CFR_config(ads833xHandle) 配置CFR这句放在循环里,则采回来单次数据,不过不是从0通道开始(3、0、1、2、3、0...),也尝试过采用自动模式 但是采集的通道顺序都是乱的。
请问 1.8331在开发 标准的工作流程是什么? 2.上述问题该怎么改进呢?3.采用自动模式的话 要怎么配置CFR? 如有回复 万分感谢!
void Task1 (UArg arg0, UArg arg1) { int j; uint16_t Buf[100]; uint16_t channel[0] = {0x0000,0x1000,0x2000,0x3000}; uint32_t EOC_State; //ads833xHandle = ADS833X_Open(); //打开SPI(写在TASK初始化下) ADS8331X_CFR_config(ads833xHandle);//配置CFR模式为: E3FD, 手动选择通道&手动触发转换 //while(1) for(j=0;j<100;j++) { int i; ADS8331X_Select_Channel(ads833xHandle,&channel[0],1);//设置采集通道为channel 0 pin_set(CC2640R2DK_4XS_PIN_Convst ,0);//启动convst转换 for(i=1;i<=1000;i++) { } pin_set(CC2640R2DK_4XS_PIN_Convst ,1);//转换信号复位 //EOC_State = PIN_getOutputValue(CC2640R2DK_4XS_PIN_EOC); //读EOC状态 Buf[j] = ADS8331X_ReadData(ads833xHandle);//采集数据 } } void Task2 (UArg arg0, UArg arg1) { int j,m=0; uint16_t Buf[100]; uint16_t channel[4] = {0x0000,0x1000,0x2000,0x3000}; uint32_t EOC_State; //ads833xHandle = ADS833X_Open(); //打开SPI(写在TASK初始化下) ADS8331X_CFR_config(ads833xHandle);//配置CFR模式为: E3FD, 手动选择通道&手动触发转换 //while(1) for(j=0;j<100;j++) { int i; //ADS8331X_CFR_config(ads833xHandle);//配置CFR ADS8331X_Select_Channel(ads833xHandle,&channel[m],1);//设置采集通道为channel m m++; pin_set(CC2640R2DK_4XS_PIN_Convst ,0);//启动convst转换 for(i=1;i<=1000;i++) { } pin_set(CC2640R2DK_4XS_PIN_Convst ,1);//转换信号复位 //EOC_State = PIN_getOutputValue(CC2640R2DK_4XS_PIN_EOC); //读EOC状态 Buf[j] = ADS8331X_ReadData(ads833xHandle);//采集数据 if (m==4) { m=0; } } }