Forum: Mikrocontroller und Digitale Elektronik ADC Atmega 32


von Christoph (Gast)


Angehängte Dateien:

Lesenswert?

Hi liebe mikrocontroller.net community

Ich versuche eine ADC in mein Programm einzubauen.

Leider bekomme ich als Ergebnis nur den Wert 255.
Dieser Wert wird von mir aus dem Register ADCH ausgelesen.

Ich verwende eine externe 5 V Referenzspannung!
Als zu wandelnde Spannung, wird für den Testbetrieb, 1V verwendet. Diese 
wird von einem Netzgerät zur Verfügung gestellt.

Eine weitere Frage von mir wäre was es mit dem Register ADCW auf sich 
hat. Dieses wird im Tutorial von mikrcontroller.net verwendet. 
Allerdings habe ich es im Datenblatt nicht gefunden.
Bei dem Versuch ADCW auszulesen, habe ich den Wert 192 bekommen. Dieser 
ändert sich auch bei mehrmaligen auslesen nicht!

Zusatzinformation:
Ich habe das Programm der ADC hochgeladen. Vl. sieht jemand einen 
Fehler!
Es wird das RN-Control Board verwendet (Falls das Auswirkungen hat)


Danke für die Hilfe

Christoph

von Stefan B. (stefan) Benutzerseite


Lesenswert?

ADCW ist bei manchen AVRs mit aufeinanderfolgenden ADCH und ADCL 
Adressen ein 16-Bit Register aus den beiden 8-Bit Registern ADCH und 
ADCL.

Ein Beispiel für einen solchen AVR ist der Atmega16. Die Definition von 
ADCW befindet sich, wenn vorhanden, in einem Includefile für diesen µC 
(über #include <avr/io.h> bekannt gemacht).

Mit ADC.c (1.3 KB) kann ich nix anfangen. Das ist IMHO kein gültiges 
C-Programm.

von Christoph (Gast)


Lesenswert?

Es ist natürlich das gesamte Programm!
Das gesamte Programm ist wesentlich länger und ich denke kaum das jemand 
Interesse hat sich da durch zu ackern.

Daher hab ich den Bereich mit der ADC und Init herauskopiert.
Im restlichen Programmverlauf kommt keine weitere ADC vor....

von Karl H. (kbuchegg)


Lesenswert?

2 Dinge

* Kannst du aus deinen Fragmenten ein komplettes, möglichst einfaches 
Testprogramm zusammenstellen?

* Warum benutzt du nicht die Tutorialsfunktionen als erste Grundlage für 
deine Routinen? Zuerst einfach unverändert übernehmen, zum laufen 
bringen und erst dann abändern.

von Karl H. (kbuchegg)


Lesenswert?

Christoph schrieb:

> Ich verwende eine externe 5 V Referenzspannung!

Ganz sicher?

Im Programm ist sie ausgewählt, schon richtig.
Aber ist die auch an ARef angeschlossen? Mit dem Voltmeter kontrolliert?

Was ist, wenn du fürs erste auf interne AVcc umschaltest?

von Peter (Gast)


Lesenswert?

send_chr(ADD);

damit sendest du die zahlen aber binär - ist das das Bewust?

von Christoph (Gast)


Lesenswert?

@Peter
Wie meinst du Zahlen (mehrzahl?)

Befindet sich im ADCH nicht nur eine Zahl?

Ansonsten ist es mir egal ob binär oder Dezimal.

von Peter (Gast)


Lesenswert?

Christoph schrieb:
> @Peter
> Wie meinst du Zahlen (mehrzahl?)
ja, ok ich meine Zahl

> Befindet sich im ADCH nicht nur eine Zahl?
> Ansonsten ist es mir egal ob binär oder Dezimal.
richgig, im ADCH ist eine Zahl und send_chr erwartet ein zeichen(eine 
ziffer der Zahl).
Wenn im ADCH ein 7 steht dann bekommt du von deinem Terminalprogramm ein 
BEEP aber keine 7.

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.