Archiv verlassen und diese Seite im Standarddesign anzeigen : Adc auf weniger als 10 bit schalten
Rohbotiker
05.03.2008, 16:03
Hallo,
ich möchte meinen Adc mit maximal 6 oder 7 Bit betreiben um seine Geschwindigkeit zu erhöhen, wie mache ich das?
Naja, du ignorierst einfach die unteren 3 oder 4 Bit des Ergebnisses...
die Geschwindigkeit zu erhöhen ist noch das geringste Problem dabei
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
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).
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?
radbruch
05.03.2008, 17:08
Hallo
Die Frage, wie man den ADC dazu bringt weniger als 10 Bit zu samplen habe ich mir auch schon gestellt:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=33070
Das ist dann daraus geworden:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=33228
Ist zwar in C, aber der selbe ADC ;)
Gruß
mic
Besserwessi
05.03.2008, 18:56
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).
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
radbruch
06.03.2008, 10:10
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
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
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.