www.mikrocontroller.net

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


Autor: Christian J. (elektroniker1968)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Bernd Rüter (Firma: Promaxx.net) (bigwumpus)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Master Snowman (snowman)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sven Stefan (stepp64) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Master Snowman (snowman)
Datum:

Bewertung
0 lesenswert
nicht 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)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.