Hallo,
ich möchte meinen Adc mit maximal 6 oder 7 Bit betreiben um seine Geschwindigkeit zu erhöhen, wie mache ich das?
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
So viele Treppen und so wenig Zeit!
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).
So viele Treppen und so wenig Zeit!
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?
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/ze...ag.php?t=33228
Ist zwar in C, aber der selbe ADC ;)
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
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
Hallo
Man aktiviert die linksbündige Ausrichtung des Ergebnisses (ADLAR-Bit im ADMUX gesetzt) und liest dann nur das High-Byte (ADCH) aus.Wie mache ich aus dem 10bit-wert des ADC...einen Byte-Wert
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
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
Lesezeichen