- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 7 von 7

Thema: Analog-Diagitalwandler auswerten

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.06.2004
    Ort
    Ulm
    Alter
    36
    Beiträge
    248

    Analog-Diagitalwandler auswerten

    Anzeige

    Praxistest und DIY Projekte
    Hallo Leute,

    ich mache mit meinem AD-Wandler an meinem Mega32 eine Differenzmessung zwischen ADC0 und ADC1 über den Mux Kanal 11.

    Alles kein Probelm.

    Jetzt geht es nur an das auswerten.
    Ich lese einfach das ADCW Register aus und wandle es in eine uint8_t um.
    funktioniert auch. Nur sollte das Ding auch negative Zahlen zurückgeben und das tut es nicht.

    Kann mir da jemand helfen?

    Grüßle Bastii

  2. #2
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Wenn man das Vorzeichen mit erhalten will, darf man nicht erst nach uint8 umwadeln. Die daten aus ADCW sind dann als int16 zu interpretieren. Im Zweifelsfall muß da dann noch ein Typecast dazwischen.

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.06.2004
    Ort
    Ulm
    Alter
    36
    Beiträge
    248
    int16 hab dann also auch negative Zahlen?

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.06.2004
    Ort
    Ulm
    Alter
    36
    Beiträge
    248
    wie muss das mit dem Typecast dann aussehen?

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.07.2006
    Ort
    Karlsruhe/München
    Alter
    34
    Beiträge
    587
    meineint8=(uint8_t) meineuint16

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    20.05.2006
    Ort
    Lippe
    Alter
    54
    Beiträge
    524
    Hallo,

    er möchte das Vorzeichen behalten.

    int8_t meineint8;
    meineint8=(int8_t) meinint16;

    @sebi87

    Du kannst natürlich auch int16_t für meineint8 nehmen. Dann fällt der Typecast (int8_t) weg. Aber wenn du von 16 Bit nach 8 Bit wandelst, würde dich der Compiler warnen. Mit dem Cast sagst du ihm, dass du weißt, was du da tust. Ob du nun 8 oder 16 Bit benötigst, kann dir keiner sagen.

    BTW: Bei deinen eigenen Beiträgen gibt es einen schönen Edit-Button

    Gruß

    Jens

  7. #7
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Wenn man nur ein 8 Bit Ergebnis haben will, dann sollte man das Ergbenis linksbündig einstellen, bei der Konfiguration des ADs. Dann kann man den 8 Bit wert direkt aus ADCH auslesen. Einfach nur per typcast gibt es Probleme bei Werten außerhalb von +-128.

Berechtigungen

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

LiFePO4 Speicher Test