Forum: Mikrocontroller und Digitale Elektronik AD-Wandlerproblem - Fehler gefunden


von Erwin Stache (Gast)


Lesenswert?

AD - Wandlerproblem - Fehler gefunden

Es gibt Situationen, wo selbst Leuten, die schon länger mit Assembler 
programmieren, unglaubliche Fehler unterlaufen - peinlich, peinlich

Das Problem war, Werte wurden ausgelassen, die LSB also fielen weg, so 
daß bei steigender Eingangsspannung die Reihe z.B. so aussah: 
181,182,184,192,193,195.
Genau dieses Problem hatte ich in früheren Arbeiten bereits gelöst, 
indem ich den Prescaler das AD-Wandlers entsprechend eingestellt habe, 
damit die Wandlerfrequenz 200 kHz nicht übersteigt (Siehe Datenblatt).
(4MHz Division Factor z.B. 64, bei 8MHz etwa 128)
Genau das tat ich auch diesmal mit dem 2333 und dennoch, die Werte 
fehlten.

Da ich kaum mit dem Simulator arbeite ist mir der wirklich peinliche 
Fehler nicht aufgefallen.
Erst beim Simulieren merkte ich, daß der Prescaler immer auf 1 gestellt 
war, egal welchen Wert ich ins Register schrieb. Und da dämmerte es mir 
...... und tatsächlich. Ich vergaß einfach nur die 0b vor der Dualzahl 
zu schreiben.

;AD-Wandler

ldi  temp,00000111  ;Teiler = 128  out  ADCSR,temp

richtig ist 0b00000111


Ist es nicht zum Verzweifeln? Vielen Dank für Eure Hinweise.

von Lanius (Gast)


Lesenswert?

Hai,

Tippfehler sind viel gemeiner als Programmfehler :)

>richtig ist 0b00000111

wie schreibt man binäre Zahlen im GCC?

hab aus Verzweiflung schon mit

#define bin00000000 0
#define bin00000001 1
#define bin00000002 2

angefangen

von Andreas (Gast)


Lesenswert?

Hallo,

das geht auch leider nicht anders. Kannst ja die Zahlen in Hex 
schreiben, da ist die Umrechnung einfacher als bei dezimal.

MfG
Andreas

von Lanius (Gast)


Lesenswert?

Hai Andreas,

>Kannst ja die Zahlen in Hex schreiben, da ist die Umrechnung einfacher als bei 
dezimal.

normalerweise nehme ich ja auch hex, nur bei Zeichensätzen oder 
Bitmasken währe es im Listing sehr viel übersichtlicher.

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.