Archiv verlassen und diese Seite im Standarddesign anzeigen : ADC, wie lese ich ihn aus?
Hi,
Ich brauche mal die Hilfe eines AVR-Nutzers.
Ich versuche einen ADC anzusprechen, wobei ich ein Prog aus dem I-Netz nutze. Eigentlich sollte es einfach sein, aber irgendwo harkt es.
Ich bekomme keinen Wert der ADC-Wandlung auf den LEDS von Port D angezeigt.Immer sind alle an, egal ob ich auf Masse lege oder irgendeine Spannung z.b. 0.5V anlege. Die LEDs sind gegen 5V gelegt. Anbei das Ass-Prog,achja ein ATmega8L ist es.
.include "m8def.inc"
.org 0x0000
rjmp reset
reset:
ldi r16, low(RAMEND)
out SPL, r16
ldi r16, high(RAMEND)
out SPH, r16
ldi r16, 0xFF
out DDRD, r16
ldi r16, 0b00100000
out ADMUX, r16
ldi r16, 0b11000101
out ADCSR, r16
ldi r16, 0b11110000
out PORTD, r16
loop:
sbis ADCSRA, ADIF
rjmp loop
in r16, ADCH
out PORTD, r16
ldi r16, 0b00100000
out ADMUX, r16
sbi ADCSRA, ADSC
rjmp loop
probiers mal damit ( mal ohne Interrupts ) ... allerdings keine Gewähr das es stimmt....
MfG Kjion
Hey Claus!
Kannste mir den Code mal schicken (email oder hier in deiesem Thread), wenn das ganze funktioniert?
Ich beschäftige mich nämlich auch gerade damit und verstehe da das net ganz!
Wie muss ich denn dann den Code für den AT90S4433 umändern?
Danke!
Hi,
danke fuer die Hilfe.
Es laeuft nun, sowohl single als auch free-run Modus mit Interrupt. Mein Fehler lag in dem nicht angeschlossenen Pin AVref. Nach setzen der Bits fuer AVcc ging alles super.
Anbei 2 demos fuer die beiden Modi.
p.s. alles in einer Datei.
ich gebe die Daten der Wandlung an den Port D (adc0-adc7) und Port B
(adc8-adc9) aus. Messkanal ist 0. Die Leds sind mit 1k gegen 5V gelegt.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.