PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATMega8 ADC problem



.Johannes.
07.03.2006, 10:58
Hallo!

Ich möchte einen Beschleunigungssensor an den ATMega8 anschließen
Der Sensor gibt eine Spannung von 0..5V aus.
Erstamal die Schaltung:
Beim Microcontroller habe ich die Pins AREF und AVCC jeweils mit VCC
verbunden und den Ausgang des Sensors dann an ADC0.

mein Programm:

;ADC initialisieren
ldi r16,0b10100110 ;ADC ein, FreeRun, prescaler 64 (für 12Mhz)
out ADCSRA,r16

; zum auslesen

in r17, ADCL


jedenfalls erhalte ich immer den Wert 0
vielleicht ist der Beschleunigungssensor falsch geschaltet

gibt es die Möglichkeit ein Poti anzuschließen, um zu Testen?

dennisstrehl
07.03.2006, 12:48
Ich glaube, wenn das Low-Byte ausgelesen wurde, wird das gesamte ADC-Result-Register nicht mehr aktualisiert, bis das High-Byte ausgelesen wird. Dadurch wird verhindert, dass man, wenn man die Bytes nacheinander ausliest, zwei bytes ausliest, die zu unterschiedlichen Samples gehören.

Ansonsten kann man auch ein Poti anschließen, Mittelabgriff an den ADC, die beiden anderen Anschlüsse einen an 5V und den anderen an GND.

MfG

.Johannes.
07.03.2006, 13:25
Hab's ausprobiert, leider ohne Erfolg!

ich hab beide ausgelesen auch in umgekehrter Reihenfolge, bekomme immer noch 0 heraus

dennisstrehl
07.03.2006, 13:29
Dann versuch's mal mit dem Poti.

.Johannes.
07.03.2006, 13:38
OK, habs!

wusste nicht, dass man im Free Running Modus das
ADSC (Bit6) auch setzen muss!!!
trotzdem danke!

.Johannes.
07.03.2006, 13:45
muss aber feststellen, dass das teil ziemlich flackert (im bereich von
20 einheiten oder so) kann man das irgenwie vermindern?

ogni42
11.04.2006, 10:05
AVcc und ARef müssen von Vcc entkoppelt werden. Da gibt es hier im Forum schon etliche Beiträge zu und es steht ausserdem im Datenblatt. Ohne diese Entkopplung schwanken die ADC-Werte stark.

Bernhard.Erfurt
11.04.2006, 12:24
Bei der ADC-Software ist einiges zu beachten.

Schau mal hier:

http://www.mikrocontroller.net/forum/read-4-225010.html

und suche Dir mal die entsprechenden Routinen ;)