- LiFePO4 Speicher Test    Werbung      
Ergebnis 1 bis 3 von 3

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

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.04.2009
    Ort
    Wörgl
    Alter
    30
    Beiträge
    175

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

    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
    63
    Beiträge
    5.799
    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
    Bild  
    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
    30
    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
  •  

    Werbung      LiFePO4 Speicher Test