Hallo,
ich verwende den AT32UC3C mit AVRStudio6.1 und hab ein Problem mit dem
ADC:
ich verwende eine externe Referenzspannung (ADCREF0) und will 2 Werte
einlesen (ADCIN0, ADCIN1, PinsPA04 und PA05).
die von Atmel bereitgestellte library adcifa.h hab ich inkludiert.
Code:
1
int16_tadc_value[2];
2
3
adcifa_sequencer_opt_tlocal_seq_options;// for copy of options in init -> need for funktion GetAdcValue
Die Funktion GetAdecValue ruf ich von einem anderen modul auf, mit der
will ich die ADC Werte holen, die an den beiden Pins anliegen.
´Die externe Referenzspannung an ADCREF0 ist 2,5V, die CPUFrequenz
(CPU_SPEED) 64MHz. An den beiden Pins liegen ca 250mV an, also 1/10 der
Referenzspannung. Wenn ich im Debug Modus im IO View die Register des
ADCIFA nach der Initialisierung ansehen will, sind alle Bits weiß, also
nicht gesetzt?! Ich kann auch keines händisch durch draufklicken setzen.
Die beiden Werte von adc_value liegen bei -1880 und -11.
Kann mir jemand sagen, warum das nicht funktioniert?? Bin schon langsamn
am verzweifeln...
Vielen Dank!!
Hmmm, keiner eine Idee?
Das komische ist, dass ich im Debug Modus kein Bit im Register durch
Anklicken setzen kann und es sind im ADCIFA alle Bits in allen Registern
weiß hinterlegt, d.h. nicht gesetzt... Woran könnte das liegen?
Noch eine Zusatzinfo:
Wenn ich die Funktion GetAdcValue() das erste mal aufrufe, bekomme ich
den Wert wie oben beschrieben: -1880 und -11
Wenn ich die Funktion dann noch 5 mal aufrufe bekomm ich für den ersten
Wert immer Werte um ca 280 und für den zweiten Wert um ca -7.
Kann sich das jemand erklären?
Hier ist das Datenblatt: http://www.atmel.com/Images/doc32117.pdf
Noch eine Info: ich habe zwischen ADCREFP und ADCREFN einen 100n C
geschalten, ich will nur die ADCREF0 als externe Referent und single
ended Messungen. Habe ich das richtig verstanden (Seite 1106 im
Datenblatt), dass bei der single ended messung dann nur 11 statt 12 Bit
Auflösung verfügbar sind? Dann wäre das max 2048, das würde dann mit dem
ersten Wert (280) ungefähr passen (hab da noch hohes Rauschen drauf),
weil 250mV anliegen und die Referenzspannung 2,5V ist.? Das Problem mit
dem zweiten Wert hab ich nun auch gelöst, liegt nun auch im Bereich des
ersten, würde also auch passen ("im Bereich", weil das Rauschen
Wertschwankungen verursacht)...