PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mega16 und Adc; Was mache ich Falsch?



x8r
20.01.2006, 17:18
Hallo,
ich habe heute meinen Mega16 bekommen und der läuft soweit.
Ich habe allerdings noch ein Problem mit dem Analog-Digital-Converter.
Hier mal ein Prog das ich geschrieben habe:

$regfile = "m16def.dat"
$crystal = 1000000
Config Portc = Output
Dim V As Integer
Config Adc = Single , Prescaler = Auto
Start Adc
Do
V = Getadc(1)
If V > 512 Then Portc.0 = 1 Else Portc.0 = 0
Loop

Kann mich bitte jemand berichtigen?
Oder mache ich etwas komplett falsch?
Mit freundlichen Grüßen
Jan Weber

felack
20.01.2006, 18:20
Schreib doch mal dazu, was dein Problem ist ! An welchem Pin willst du die Spannung messen ? Hast du da ein Poti drangehängt ? Was funktioniert nicht ?

Ist so wie: Ich hab ein Problem mit men VW Golf, wer kann helfen ?

felack

chr-mt
20.01.2006, 18:40
Config Adc = Single , Prescaler = Auto , Reference = Off
Start Adc

Dim A as Word
A = Getadc(1)

So funzt es bei mir.. Am Referenzeingang liegen 5V

Gruß
Christopher

x8r
20.01.2006, 18:44
Hi,
also ich habe ein Poti als Spannungsteiler dran hängen und es bringt auch 0 bis 5V. Das Prog habe ich eigentlich nur zum testen geschrieben, weil ein umfangreicheres Prog von mir nicht funktioniert hat. Das testprog soll eine LED an portc.0 je nach der Stellung des Potis schneller bzw. langsamer blinken lassen. Wenn ich das prog auf den Controller übertrage blinkt die Led mit ca 1Hz. Theoretisch müsste das heißen, dass am ADC pin volle 5V anliegen. Wenn ich am Poti drehe verändert sich nichts, obwohl die Spannung sich verändert.
Ich versuche mich schon seit knapp 4h daran und es funzt einfach nicht!
Ich glaub ich steig bald auf C um :)
MfG
Jan

x8r
20.01.2006, 18:50
@Christopher:
was hat es mit dem Referenzeingang auf sich?
Der ist bei mir unbeschaltet!
Muss ich da irgenwas dranhängen?
MfG
Jan

x8r
20.01.2006, 19:17
Oh, ich hab heute so viele Progs ausprobiert, da hab ich die natürlich verwechselt. Das obige Prog soll, wenn die Spannung über 2,5V ist die LED an machen und wenn sie drunter ist aus machen.
"So funzt es bei mir.. Am Referenzeingang liegen 5V "
heisst das, dass ich an VREF die Versorgungsspannung anlegen soll, oder verstehe ich das falsch? Ich dachte das VREf nur zum entstöhren da ist?!?
MfG
Jan

focobot
20.01.2006, 19:33
Der Referenzeingang legt den Referenzspannungspegel fest -> der ADC-Wert liegt zwischen 0 und der Referenzspannung. d.h. Du musst die Referenzspannung anlegen, dass der Comperator einen Vergleichswert hat.

chr-mt
20.01.2006, 19:42
Richtig.
Und mit "reference" legst du fest, ob der Controller die extern anliegende Spannung als Referenz nimmt, die Versorgungsspannung, oder die intern im Controller erzeugte Referenz.

OFF = externer Eingang , interne Referenzspannung abgeschaltet
AVCC = Betriebsspannung als Referenz
INTERNAL : Interne Referenzspannung 2,56 V

In allen Fällen sollte ein Kondensator an den AREF Eingang


Ich glaub ich steig bald auf C um
:D Ich glaube da wird's bestimmt nicht einfacher ;)

Gruß
Christopher