-         

Ergebnis 1 bis 10 von 10

Thema: Adc auf weniger als 10 bit schalten

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.05.2007
    Beiträge
    177

    Adc auf weniger als 10 bit schalten

    Anzeige

    Hallo,

    ich möchte meinen Adc mit maximal 6 oder 7 Bit betreiben um seine Geschwindigkeit zu erhöhen, wie mache ich das?

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Felix G
    Registriert seit
    29.06.2004
    Ort
    49°32'N 8°40'E
    Alter
    34
    Beiträge
    1.780
    Naja, du ignorierst einfach die unteren 3 oder 4 Bit des Ergebnisses...

    die Geschwindigkeit zu erhöhen ist noch das geringste Problem dabei
    So viele Treppen und so wenig Zeit!

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.11.2004
    Ort
    Aachen
    Alter
    32
    Beiträge
    246
    Also wenn man die unteren Bit einfach ingnoriert, ändert das aber nichts an der Geschwindigkeit des ADC.

    Meines Wissens nach ist das bei den ATMegas auch gar nicht möglich, die Auflösung zu verändern.
    Welchen Controller verwendest du denn überhaupt?

    mfg
    zerush

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Felix G
    Registriert seit
    29.06.2004
    Ort
    49°32'N 8°40'E
    Alter
    34
    Beiträge
    1.780
    So habe ich das auch nicht gemeint...

    die Geschwindigkeit stellt man ganz normal über den Prescaler ein, nur eben höher als normalerweise erlaubt (das ist völlig problemlos möglich). Die Messgenauigkeit verringert sich dabei allerdings, weshalb man die unteren Bits des Ergebnisses am besten ignorieren sollte (ist eh nurnoch Rauschen).
    So viele Treppen und so wenig Zeit!

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.11.2004
    Ort
    Aachen
    Alter
    32
    Beiträge
    246
    Ahh ok, dann habe ich dich falsch verstanden, sorry.

    Also der ATMega hat ja z.B. 3 Bits für die Prescaler Auswahl. Das kleinste hier wäre 2.

    Noch schneller bekommt man ihn doch nicht oder?

  6. #6
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    Die Frage, wie man den ADC dazu bringt weniger als 10 Bit zu samplen habe ich mir auch schon gestellt:

    http://www.roboternetz.de/phpBB2/viewtopic.php?t=33070

    Das ist dann daraus geworden:

    http://www.roboternetz.de/phpBB2/zei...ag.php?t=33228

    Ist zwar in C, aber der selbe ADC ;)

    Gruß

    mic

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

  7. #7
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Bei den Atmels kann man die Ausrichtung der Bits auswählen, man kreigt also die oberen Bits zusammen in 1 Register.
    Bei etwa 1 MHz ADC takt (13 us je Wandlung) kann man noch mit etwa 8 gültigen Bits rechnen, wenn der Rest stimmt. Dabei sollte man aber darauf achten, dass die Spannung relativ niederohmig anliegt (> 10 KOhm).

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.10.2004
    Ort
    Thüringen
    Beiträge
    133
    Interessiert mich auch, nur versteh ich es nicht.

    Wie mache ich aus dem 10bit-wert des ADC (ich speichere den immer als word) einen Byte-wert, also 8 bit?? Einfach das obere Byte oder untere Byte abschneiden?? geht das?

    Oder ist das komplizierter?

    MfG. dl1akp

  9. #9
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    Wie mache ich aus dem 10bit-wert des ADC...einen Byte-Wert
    Man aktiviert die linksbündige Ausrichtung des Ergebnisses (ADLAR-Bit im ADMUX gesetzt) und liest dann nur das High-Byte (ADCH) aus.

    Gruß

    mic

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

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.09.2005
    Beiträge
    276
    Config Adc = Single , Prescaler = 32 , Reference = Avcc 'Prescaler = Auto '32'

    Besagt wie 'gut' die Wandlung vorgenommen wird.
    Je kleiner Prescaler ums so schneller aber 'ungenauer' bei 10 Bit.

    Da Du eh nur 8 Bit brauchst Precaler kleiner machen.

    Es folgt :Wandlerwert = GetADC(Port_n) 10 Bit groß
    Dann Shift Wandlerwert , Right , 2 auf 8 Bit z.b. bringen
    Ende : Byte = Wandlerwert

    so oder so ca geht's ungetestet.

    lg
    Gento

Berechtigungen

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