Forum: Mikrocontroller und Digitale Elektronik problem beim Werte auslesen durch AD Wandler


von Ahmad (Gast)


Lesenswert?

ich habe ein Programm geschrieben und laufen lassen auf dem µC lpc2294 
fürs auslesen von Analog-Input .Das programm (polling mode) steht unter 
diesem Link:
http://www.standardics.nxp.com/support/documents/microcontrollers/pdf/tn06004.pdf

ich habe die Funktion ADC_Read(..) wie sie ist geschrieben aber im main 
habe ich folgendes geschrieben:
int main(void)
{
while(1)
{
 ADC_Read(1);
}
}
da ich  nur der AIN0 benutzen will und keine bildschirm zur Anzeige habe 
,aber ich habe die Funktion UART0_init() nicht aufgerufen ?ist es 
schlimm???
Ich kriege aber Problem:Das Programm liest den Data register (die 10 
bits) aber ich bekomme nicht den Wert der Spannug die ich angelegt habe 
an AIN0 ,sondern faengt es mit irgendwelches positiven wert und nach 
paar durchläufe wird geaendert bis der zurückgegebene wert zu 0 wird.Hat 
jemand eine Idee woran es liegen könnte?Außerdem steht im Datasheet des 
LPC2294 dass in den 10 bits ein Verhaeltnis zwischen der angelegte 
Spannug mit der Spannung an dem VddA pin steht,aber was ist der VddA pin 
und wie groß sein Wert sein soll ,ich habe danach gesucht gesucht im 
Datasheet aber habe keine klare antwort dafür gefunden???und wieso 
aendert sich der zurückgegebene Wert jedes mal die Funktion aufgerufen 
wird und dieser Wert zu 0 wird??Kann jemand mir bitte helfen ??????? 
Danke.

Grüß.

von The D. (devil_86)


Lesenswert?

10 Bit Auflösung machen 2 hoch 10 = 1024 verschiedene Werte, d.h. für 0 
Volt bekommst du '0', für deine Referenzspannung (i.A. 5V) bekommst du 
dann 1023.

Woher weißt du den Wert des/der Register(s), wenn du kein Display hast 
bzw. nicht am PC (UART) angeschlossen ist?

von Ahmad (Gast)


Lesenswert?

Danke für die schnelle Antwort :).Ich habe einen spannugsgenertor an den 
Pin angeschlossen ,und eine masse an einem GND auch.Ich dachte ich kann 
die Werte
duch den debbuger erkennen:wenn ich das Verhaeltnis zwischen der 
angelegten Spannung und der VddA(aber was ist die VddA?),durch die 
Auflösung von 10 bit ausrechne und dann vergleiche ob es mit dem Wert im 
debbuger übereinstimmt.Oder meinste du dass ich muss erstmal UART 
configurieren damit es klappt?Aber noch eine Frage ,wieso aendert dich 
der Wert des zurückgegebenen Wert beim jeden durchlauf bis es zu 0 
kommt? Danke.

Grüß

von The D. (devil_86)


Lesenswert?

Ja, das ist wichtig, dass die Massen die Gleichen sind!!
Dein VddA ist eben die Referenzspannung, die am µC natürlich auch 
beschaltet werden muss! Meist ist das die Versorgungsspannung (5V) des 
µCs, nur noch ein bisschen geglättet.
Sprich, bei 10 Bit = 1024 Werte und URef=5 V hast du pro Bit einen 
Spannungssprung von rd. 4,88mV. D.h. hast du 0 als ADC-Wert, sind 0V 
angelegt, bei 1 4,88mV, bei 2 9,72mV usw.
Wenn's nicht funktioniert, wie du sagst, solltest du kontrollieren, ob 
alles richtig beschalten ist. Und ob das Programm korrekt ist (was ich 
mal annehme).
Ob der Wert mit dem Debugger auch auslesbar ist, weiß ich nicht.

von Ahmad (Gast)


Lesenswert?

Danke für deine Antwort .Ich werde es ausprobieren.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.