PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [gelöst]ADC-Sensoren geben 0 zurück



RobotMichi
11.09.2009, 10:57
Hi,

ich habe ein Programm geschrieben, das die ADC-Sensoren ausliest und anschließend die Werte ausgiebt. Allerdings geben die Sensoren immer null zurück, und zwar alle.

Hier der Quelltext:



#include "RP6RobotBaseLib.h"

int main(void)
{

initRobotBase();

writeString_P("################################################## ###################\n");
writeString_P("########## Auslesen der Sensordaten ##########\n");
writeString_P("########## 2009 by Michael Fellner Ver1.0 ##########\n");
writeString_P("################################################## ###################\n");
writeChar('\n');

powerON();


writeChar('\n');
writeChar('\n');
writeString("Motorstromsensor links: ");
writeInteger(adcMotorCurrentLeft, DEC);
writeChar('\n');
writeString("Motorstromsensor rechts: ");
writeInteger(adcMotorCurrentRight, DEC);
writeChar('\n');
writeChar('\n');
writeString("Lichtsensor links: ");
writeInteger(adcLSL, DEC);
writeChar('\n');
writeString("Lichtsensor rechts: ");
writeInteger(adcLSR, DEC);
writeChar('\n');
writeChar('\n');
writeString("Spannungssensor: ");
writeInteger(adcBat, DEC);
writeChar('\n');

while(1)
{
task_ADC();
}
return 0;
}

Dass die Motorstromsensoren nichts zurückgeben ist mir klar, aber die anderen dürften eigentlich nicht 0 sein.

Weiß jemand was an dem Programm fehlerhaft ist?

lg,
Michi

radbruch
11.09.2009, 17:13
Hallo

Du gibst erst die Messwerte aus und ermittelst sie erst danach in der Endlosschleife mit task_ADC();! D.h: Die Ausgabe muss auch in die while-Schleife zusammen mit dem Taskaufruf (und vielleicht einer kleinen Msleep()-Bremse). Bei jedem Aufruf von task_ADC(); wird übrigens nur ein ADC eingelesen, nach 8 Aufrufen sollten alle komplett sein.

Mit writeInteger(readADC(Kanal), 10); könnte man die ADCs ohne Tasksystem direkt auslesen, allerdings darf man diese Methode nicht mit dem ADC-Task mischen!

Gruß

mic

RobotMichi
12.09.2009, 09:19
Danke, radbruch das was.

lg
Michi