-
        

Ergebnis 1 bis 3 von 3

Thema: [gelöst]ADC-Sensoren geben 0 zurück

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.04.2009
    Ort
    Wörgl
    Alter
    21
    Beiträge
    175

    [gelöst]ADC-Sensoren geben 0 zurück

    Anzeige

    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:

    Code:
    #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

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    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

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.04.2009
    Ort
    Wörgl
    Alter
    21
    Beiträge
    175
    Danke, radbruch das was.

    lg
    Michi

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •