-         

Ergebnis 1 bis 5 von 5

Thema: GETADC(32)

  1. #1
    Erfahrener Benutzer Roboter Genie Avatar von oratus sum
    Registriert seit
    25.12.2006
    Ort
    Wien
    Alter
    26
    Beiträge
    1.079
    Blog-Einträge
    1

    GETADC(32)

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo,

    Da ich bei meinem RN2560-Modul die auch die ADC kanäle 8-15 brauche verwende ich die Funktion

    GETADC(32) um z.b. ADC8 auszulesen.

    Das funktioniert ganz wunderbar allerdings bekomme ich komische Werte:

    UNTEN: 20608
    UNTEN: 5312
    UNTEN: 24256

    Unten steht für ein IR-Sharp Sensoren, welcher auf den Boden gerichtet ist. Man sieht, dass sich der Wert verringerte als ich den Sensor vom Boden entfernt habe.

    Bei den ADC Kanälen 0-7 bekomme ich Werte von 0-1023, doch bei den Kanälen 8-15 also 32-39, solche Werte.

    Der Wert wird als WORD gelesen, bei allen Kanälen.

    Bräuchte echt Hilfe...

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    24
    Beiträge
    1.544
    Hallo Oratus Sum,

    kenn jetzt das Board nicht, aber könnte es sein, dass der AVR einen 16Bit ADC hat (zumindest bei ein paar pins)?

    Gruß
    Chris

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von oratus sum
    Registriert seit
    25.12.2006
    Ort
    Wien
    Alter
    26
    Beiträge
    1.079
    Blog-Einträge
    1
    Im Datenbatt des MEGA2560 steht 10bit bei allen AD-Ports

    [EDIT]

    Ich hab bisschen nachgeforscht udn gesehen, dass die höheren AD Ports verstärkt werden.

    Im Datenblatt des Mega2560 steht:

    101001(1) ADC9 ADC8 10x
    101010(1) ADC8 ADC8 200x
    101011(1) ADC9 ADC8 200x
    101100(1) ADC10 ADC10 10x
    101101(1) ADC11 ADC10 10x
    101110(1) ADC10 ADC10 200x
    101111(1) ADC11 ADC10 200x

    Auf Seite 293 nachzulesen.

    Allerdings weiß ich jetzt nicht wie ich das abschalten kann.
    in der Hilfe von Bascom steht:

    var = GETADC(channel [,offset])

    offset kann man gain controllieren.

    Ich nehme stark an, dass ch dort die Adresse für den unverstärkten AD wandler einfügen muss.

    Mal testen....

  4. #4
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Der Wert von 32 ist zu groß für die GETADC funktion. In dem MUX register gibt es neben der Auswahl des Kanals noch andere Funktionen. Vermutlich wird bei GETADC(32) kanal 0 Gemessen, dann aber mit faschen einsellungen für ADLAR. Die Werte werden daruch um 6 Bits nach links verschoden - dadurch die großen Werte, und auch alle gut teilbar durch 64 sind.

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von oratus sum
    Registriert seit
    25.12.2006
    Ort
    Wien
    Alter
    26
    Beiträge
    1.079
    Blog-Einträge
    1
    Bei GETADC(15) wird nichts venünftiges gemessen, also sicher nciht Kanal 15, denn dort ändert sich nichts obwohl sich die Spannung schon ändert.

    Wenn ich als offset:
    110111

    angebe bekomme ich die gewohnten Werte, jedoch wäre das der Differentialmodus mit ADC9 zusammen. Offset 100111 wäre glaube ich der mit gain 1x ich probiere es gerade.

    [EDIT]

    Okay...
    Es funktioniert:

    GETADC(0,64)

    Für ADC 8.

    GETADC(1,64)

    Für ADC 9

    ADC 0, 64 ist 100000
    ADC 1, 64 ist 100001

    usw aus dem Datenblatt

    Ich verstehe gerade nur nicht wieso das Bascom nicht gleich richtig setzt. Es müsste doch mit getadc( locker funktionieren...

Berechtigungen

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