Forum: Mikrocontroller und Digitale Elektronik PIC18er: Das Drama mit dem AD Wandler


von Christian J. (elektroniker1968)


Lesenswert?

Hallo,

vielleicht benutzt ja auch jemand den CCS Compiler zusammen mit diesen 
PICs.

Es geht um diese beiden Werte:

AD Aquisition Time
A/D Conversion Clock Select Bits

Ich möchte nur eines: kurze, richtige Wandlungen, mehr nicht. Das Manual 
gibt es so gut wie nichts her.

Wie stelle ich diese Werte ein, damit er zB bei 4 Mhz richtig wandelt?
Und muss ich nach set_adc_channel(kanal), also einem Kanalwechsel warten 
bevor ich mit read_adc auslese?

Gruss,
Christian

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

Christian J. schrieb:
> Hallo,
>
> vielleicht benutzt ja auch jemand den CCS Compiler zusammen mit diesen
> PICs.
>
> Es geht um diese beiden Werte:
>
> AD Aquisition Time
> A/D Conversion Clock Select Bits
>
> Ich möchte nur eines: kurze, richtige Wandlungen, mehr nicht. Das Manual
> gibt es so gut wie nichts her.

In Kapitel 17.2 des Datenblatts stehen für div. Taktfrequenzen die 
empfohlenen TAD-Werte.

>
> Wie stelle ich diese Werte ein, damit er zB bei 4 Mhz richtig wandelt?
> Und muss ich nach set_adc_channel(kanal), also einem Kanalwechsel warten
> bevor ich mit read_adc auslese?

Ja,
die Wartezeit wird im Datenblatt davor ausführlich ausgeführt.

von Master S. (snowman)


Lesenswert?

zwar ein bischen offtopic, aber ernst gemeint: warum nimmst du für die 
18er PICs nicht das kostenlose MPLAB und den kostenlosen C18 vom 
hersteller selbst, wo es doch so viele beispiele für diesen gibt?
und by the way: wenn du im datenblatt ein register siehst, das du 
manipulieren willst, weisst du auch gleich wie die zeile C-code lauten 
muss ;-) ..ich weiss manchmal echt nicht, warum sich leute den CCS antun 
bei den PIC18xxx. CCS ist bei der inizialisierung und einfachen 
interrupts zwar einfacher, bei allem anderen aber dann nicht mehr - 
besonders wenn mal was nicht funktioniert, wie es "eigentlich" sollte, 
wie jetzt ^^ ich habe genug mitstudenten gesehen, die mit CCS frustriert 
waren, im gegensatz zu denen, die MPLAB + C18 brauchten ..CCS hat seine 
berechtigung für die 12er bis 16er PICs, wofür es vom hersteller keinen 
gratis C-compiler gibt.

von Thomas (Gast)


Lesenswert?

Ich antworte einfach mal...

Sind die beiden nicht irgendwie sehr unterschiedlich von der Art des 
Quellcodes?

Als Beispiel:

C18:
INTCONbits.GIEH=1; //Enable all high priority interrupts

Beim CCS gibt es wahrscheinlich etwas in der Art
enable_hp_interrupts(true);

Die CCS Variante finde ich deutlich besser zu lesen, leichter zu lernen, 
einzuprägen und wiederzuerkennen.

Thomas

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Also wenn du auch Assembler kannst, ist die C18 Schreibweise deutlich 
einfacher zu lesen, da sie sich genau auf die Bezeichnung der Register 
und Bits bezieht. Auch im Datenblatt bezieht man sich auf diese 
Bezeichnungen.

Sollte ich wirklich irgendwann doch noch mal mit C anfangen, würde ich 
wohl den C18 nehmen, schon wegen den eindeutigeren Bezeichnungen.

Sven

von Thomas (Gast)


Lesenswert?

Wenn ich als nicht assembler kenner ein CSS Programm sehr kann ich mir 
auch ohne die Befehle vorher gekannt zu haben vorstellen was es macht. 
Bei einem C18 Programm verstehe ich erst mal gar nichts. Bei dir ist es 
wahrscheinlich andersrum.
Der Vorteil ist natürlich, dass man wenn man sich in C18 einarbeitet mit 
der Hardware vertrauter wird und nicht drauf angewiesen ist, dass es 
einen passenden Befehl im CCS gibt. USB z.B. kennt meine alte Version 
gar nicht.

von Master S. (snowman)


Lesenswert?

ich habe nie ge-assembler-et sondern habe mit cx55 (oder wie der 
c-compiler für PIC16 heisst) begonnen, aber dann sehr schnell auf die 
PIC18 und C18 gewechselt. bei C18 ist's sehr einfach: im library-pdf 
nachschlagen, ob's dafür eine fertige funktion gibt (fast immer der 
fall) und falls doch nicht, oder man etwas speziell anpassen möchte, 
dann im DS nachsehen und einfach das flag im register mit einer zeile 
c-code ändern. fertig :-) ..so, genug werbung gemacht ;-) (ps: habe 
keine microchip-aktien oder so)

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.