Guenter B. wrote:
> Hallo
> mein ADC-Code funktioniert nicht.
> In Assembler habe ich es hinbekommen, das er funktioniert.
> Nun wollte ich es in C probieren.
> Weiß jemand warum dieser Code nicht funktioniert ?
Ich kann es mir zumindest denken, auch wenn Du in mehrfacher Hinsicht
selbst gegen einfachste Forenregeln verstoßen hast (Controllertyp
angeben, erzählen, was nicht funktioniert bzw. wie sich das
nicht-Funktionieren manifestiert usw.)...
...Wenn Du in Assembler programmiert hast, dann weißt Du ja, dass beim
Auslesen der ADC-Datenregister eine ganz bestimmte Reihenfolge
einzuhalten ist (warum das so ist, steht im Datenblatt und im
AVR-GCC-Tutorial, bitte dort nachlesen, falls noch nicht
geschehen!). Bei dieser Zeile ist aber nicht definiert, in welcher
Reihenfolge die Operanden ausgewertet werden, weshalb das mit ca.
50-prozentiger Wahrscheinlichkeit schiefgeht.
Mit Deinem C-Compiler (ich vermute in mangels Angaben von Deiner
Seite, dass es sich um den AVR-GCC handelt) kann Dir die Arbeit mit der
richtigen Reihenfolge aber abnehmen. Dazu musst Du anstelle von ADCH und
ADCL das 16-Bit-Register ADCW auslesen. Und lies Dir die betreffenden
Abschnitte im AVR-GCC-Tutorial durch.
EDIT:
...und lies Dir das Posting von Stefan ganz genau durch...