Warum komme ich beim Auswärten des ADC's nur bis 25% ?

OP #274237
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
Angehängte Dateien:
Gast #274239
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;
Gast #274241
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...
OP #274242
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
OP #274244
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren