工具/软件:Code Composer Studio
您好!
我想读出多个 ADC 通道并将其发送到终端。
因此、我想使用具有我正在使用的 ADC 通道数的 for 循环。
这是我的代码:
unsigned int value1、value2、ID1、ID2、NumberInChars、 IdInChars;
unsigned int value[8]、id[8]、ch_count= 0、i;
adcData_t adc_data[2];
adcInit();
sciInit();
gioInit();
gioSetDirection (gioPORTA、0xFFFFFFFF);
while (1){
adcStartConversion (adcREG1、adcGROUP1);// Kondertunerung starten
while (!adcIsConversionComplete (adcREG1、adcGROUP1));// Warten、bis Kondigerung fertig ist
adcGetData (adcREG1、adcGROUP1、ADC_DATA);
对于(i=0 <ch_count;i++){
Value[i]=(unsigned int) adc_data[i].value;
ID[i]=(unsigned int) adc_data[i].id;
IdInChars[i]= ltoa (id[i]、(char*)命令);
sciSend (scilinREG、IdInChars[i]、command);//引脚通道:
sciSend (scilinREG、2、(unsigned char *)":");
NumberInChars[i]= ltoa (value[i]、(char*)命令);
sciSend (scilinREG、NumberInChars[i]、命令);//传感器数据
sciSend (scilinREG、2、(unsigned char *)"、");
}
/*仅适用于2个正在工作的 ADC 通道的代码
value1=(unsigned int) adc_data[0]。value;
ID1 =(unsigned int) adc_data[0].id;
value2=(unsigned int) adc_data[1].value;
ID2 =(unsigned int) adc_data[1].id;
IdInChars = ltoa (ID1、(char*)命令);
sciSend (scilinREG、IdInChars、command);// PIN-Channel:
sciSend (scilinREG、2、(unsigned char *)":");
NumberInChars = ltoa (value1、(char*)命令);
sciSend (scilinREG、NumberInChars、命令);//传感器数据
sciSend (scilinREG、2、(unsigned char *)"、");
IdInChars = ltoa (ID2、(char*)命令);
sciSend (scilinREG、IdInChars、command);// PIN-Channel:
sciSend (scilinREG、2、(unsigned char *)":");
NumberInChars = ltoa (value2、(char*)命令);
sciSend (scilinREG、NumberInChars、命令);//传感器数据
sciSend (scilinREG、2、(unsigned char *)"、");
*
sciSend (scilinREG、2、(unsigned char *)"\r\n");//新建行
adcStopConversion (adcREG1、adcGROUP1);
if (value1>128) //LED
gioSetBit (gioPORTA、1、1);
其他
gioSetBit (gioPORTA、1、0);
_delay_cycles (160000-1);
gioToggleBit (gioPORTA、0);
adcResetFiFo (adcREG1、adcGROUP1);
}
对于标记为蓝色的行、错误#143 (表达式必须具有点对对象指针)是八进制的。
(此外、我在读取 ADC-引脚的 ID 时遇到问题:虽然我使用 ADIN0和 ADIN1、但我获得的 ADC_DATA.id 的数字是0。)
提前感谢您!
Christian