Forum: Mikrocontroller und Digitale Elektronik Warum komme ich beim Auswärten des ADC's nur bis 25% ?


von Sepp -. (sepp_o)


Angehängte Dateien:

Lesenswert?

Salve

Ich hab mich gerade ein wenig mit dem ADC gespielt.

Ich habe ein Poti über an Pin 7 des Port B (0..7) angeschlossen.

Den Analogwert gebe ich über 2 7-Segmentanzeigen in % aus.
(Für den Fall dass 100% erreicht wird, wird einfach 99% ausgegeben.)

Leider habe ich das Problem dass sobalt 25% erreicht wird die Anzeige
wieder auf 0% zurückspringt.

Kann mir bitte jemand sagen wo ich den Fehler gemacht habe?
(Die Datei befindet sich im Anhang)

mfg Sepp

von Sepp -. (sepp_o)


Lesenswert?

Kottektur des Beitrages:

Ich habe ein Poti über an Pin 7 des Port A (0..7) angeschlossen.

von Benedikt (Gast)


Lesenswert?

Ein Blick ins Datenblatt hilft.
When ADCL is read, the ADC Data Register is not updated until ADCH is
read. Consequently,
if the result is left adjusted and no more than 8-bit precision is
required, it is
sufficient to read ADCH. Otherwise, ADCL must be read first, then
ADCH.

Oder versuchs mal so:
ulTemp = ADC;

von Rahul (Gast)


Lesenswert?

miss doch mal die Spannung an deinem ADC-Pin mit einem Multimeter.
Vielleicht stimmt da schon irgendwas nicht...

von Zimmi (Gast)


Lesenswert?

Hiho,
deutsche Sprach schwäre Sprache.
Ändere mal folgendes:

ulTemp = ADCH;  // Das High-Nibble wird gehohlt.
ulTemp << 8;  // Die Bit's werden um 8 Stellen verschoben
ulTemp += ADCL;  // as Low-Nibble wird gehohlt.

in folgendes:
ulTemp = ADCH;  // Das High-Nibble wird gehohlt.
ulTemp = ulTemp << 8;  // Die Bit's werden um 8 Stellen verschoben
ulTemp += ADCL;  // as Low-Nibble wird gehohlt.
Dann könnte es gehen...

von Sepp -. (sepp_o)


Lesenswert?

Danke Zimmi
Diesen Fehler habe ich glatt übersehen.

Ich wollte es eigentlich so schreiben:
ulTemp <<= 8;

@Benedikt
Danke für deinen Hinweis.
Ich hab mich nach einer deutschen Übersetzung des Datenblattes
gerichtet und da stand's genau anders herum.

Ich werd die deutsche Übersetzung gleich in die Tonne klopfen und nur
mehr mit der Originalversion arbeiten.

mfg Sepp

von Benedikt (Gast)


Lesenswert?

Deutsches Datenblatt ?
Wo kann man das runterladen ?

von Sepp -. (sepp_o)


Lesenswert?

Leider ist der Link tod und ich habe vor lauter Wut alle 3 Dateien
gelöscht.

Es ist ügrigens kein vollständiges Datenblatt des 90s8535, sondern nur
eine Übersetzung des internen Aufbaus, der Timer und des ADC's.

Eventuell finde ich die e Datenblattfragmente.

mfg Sepp

von Sepp -. (sepp_o)


Angehängte Dateien:

Lesenswert?

Salve

Ich hab mir sogar die Mühe gemacht die Fehler, die ich gefunden habe
auszubessern.


mfg Sepp.

von Sepp -. (sepp_o)


Angehängte Dateien:

Lesenswert?

Ich hoffe ihr könnt dass brauchen.

mfg Sepp

von Sepp -. (sepp_o)


Angehängte Dateien:

Lesenswert?

Dass ist der Letzte Teil.

Die letzten beiden Zusammenfassungen beziehen sich auf den AT90S4414 /
AT90S8515 und Teilweise auf den AT90S2313.

Stimmt dass in der Tabelle 28 (ADC-Vorteilerauswahl) dass die Auswahl
000 und 001 einen Vorteilfaktor von 2 ergeben oder ist dass nur ein
Druckfehler?

mfg Sepp

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.