Tool/software: Code Composer Studio
Hello,
I would like to read out multiple ADC Channels and send them to the terminal.
Therefore I would like to use a for- loop with the number of adc channels I am using.
This is my Code:
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); // Konvertierung starten
while(!adcIsConversionComplete(adcREG1, adcGROUP1)); // Warten, bis Konvertierung fertig ist
adcGetData(adcREG1, adcGROUP1, adc_data);
for (i=0;i<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*) command);
sciSend(scilinREG, IdInChars[i], command); // PIN-Channel:
sciSend(scilinREG, 2, (unsigned char *) ": ");
NumberInChars[i] = ltoa(value[i], (char*) command);
sciSend(scilinREG, NumberInChars[i], command); // Sensor data
sciSend(scilinREG, 2, (unsigned char *) ", ");
}
/* Code for only 2 ADC-Channels, which is working
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*) command);
sciSend(scilinREG, IdInChars, command); // PIN-Channel:
sciSend(scilinREG, 2, (unsigned char *) ": ");
NumberInChars = ltoa(value1, (char*) command);
sciSend(scilinREG, NumberInChars, command); // Sensor data
sciSend(scilinREG, 2, (unsigned char *) ", ");
IdInChars = ltoa(id2, (char*) command);
sciSend(scilinREG, IdInChars, command); // PIN-Channel:
sciSend(scilinREG, 2, (unsigned char *) ": ");
NumberInChars = ltoa(value2, (char*) command);
sciSend(scilinREG, NumberInChars, command); // Sensor data
sciSend(scilinREG, 2, (unsigned char *) ", ");
*/
sciSend(scilinREG, 2, (unsigned char *) "\r\n"); // New line
adcStopConversion(adcREG1, adcGROUP1);
if(value1>128) //LEDs
gioSetBit(gioPORTA, 1, 1);
else
gioSetBit(gioPORTA, 1, 0);
_delay_cycles(16000000-1);
gioToggleBit(gioPORTA, 0);
adcResetFiFo(adcREG1, adcGROUP1);
}
For the blue marked lines the error #143 (expression must have point-to-object pointer) occures..
(Furthermore I have a problem reading the ID of the ADC- Pins: Although I use ADIN0 and ADIN1, the number I get for both with the adc_data.id is 0.)
Thank you in advance!
Christian