Forum: Mikrocontroller und Digitale Elektronik Suche ADC-Code für PIC24F256GB110


von Ben (Gast)


Lesenswert?

Hallo,

ich bin auf der Suche nach Beispielcode für den PIC24F256GB110 von 
Microchip. Ich möchte ungerne deren Bibliotheken verwenden, da sie mir 
zuviel Overhead haben. Mein eigener Code, der auf dem Reference Manual 
(Section 17) basiert, funktioniert aber nicht vernünftig. Vielleicht 
kennt jemand eine Seite mit Beispielcode oder kann mir welchen zur 
Verfügung stellen? Ich fange erst gerade mit PIC an.

Ben

von Master S. (snowman)


Lesenswert?

http://www.engscope.com/pic24-tutorial/11-adc/

was spricht dagegen den code von Microchip zu nehmen und das aus deren 
funktionen rauszuschmeissen, was dir nicht gefällt?

von Ben (Gast)


Lesenswert?

Den Code hatte ich probiert, leider ohne viel Erfolg. Kann es daran 
liegen, dass ein PIC24FJ64GA002 verwendet wird für das Beispiel?

Ich finde den Microchip-Code extrem unübersichtlich und würde einfach 
nur gerne die entsprechenden Register beschreiben und gut.

von Ben (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe mir jetzt den Microchip-Code vorgenommen und ihn Stück für 
Stück zerpflückt. Dabei habe ich mein Problem gefunden:

Ich möchte erstmal keine Interrupts verwenden und hatte daher 
geschrieben

AD1CON2 = 0;

Der Wert der SMPI bits muss bei mir aber mindestens 5 betragen, sonst 
läuft der Code nicht. Ich weiß nicht, was ich übersehen habe. Der 
gesamte Code ist im Anhang, wäre schön, wenn jemand Rat weiß.

von Lehrmann M. (ubimbo)


Lesenswert?

für mich fehlt da der TRIS für AN5.
Für den Output hast du ihn ja beachtet.

Schau mal ins Datenblatt da ist die Sequenz aufgelistet in welcher 
Reihenfolge die Register bearbeitet werden müssen und welche Register 
beachtet werden müssen. Vielleicht hast du da was zu viel rausgekürzt. 
Was in den TRIS-Registern nach dem POR steht musst du halt nachlesen.

hast du das Hardwaremäßig dran: Oscillator Selection: HS oscillator ( 
8MHz crystal on EXPLORER 16 Board ).  ??

Ich kenne das EXPLORER16 nicht; stimmt das mit deiner 
Oszillator-Beschaltung über ein ?

von Ben (Gast)


Lesenswert?

Standard bei TRIS ist meiner Erinnerung nach Input. Aber auch ein 
explizites

TRISBbits.TRISB5  = 1;

hilft nicht weiter. Ebenso wenig funktioniert es leider, wenn ich mich 
sklavisch an die Reihenfolge der Anweisungen auf Seite 267 im Datenblatt 
halte.

von Lehrmann M. (ubimbo)


Lesenswert?

Könntest du mal nochmal deinen ganzen aktuellen Code posten ?

von Ben (Gast)


Angehängte Dateien:

Lesenswert?

Voila.

von Lehrmann M. (ubimbo)


Lesenswert?

Hmm also ich sehe eigentlich nichts mehr was irgendwie von Softwareseite 
nicht OK sein sollte. Wie sieht's mit der Hardware aus ?

von Ben (Gast)


Lesenswert?

Original Explorer16-Board mi dem entsprechenden PIM-Modul. An der 
Hardware kann es ja eigentlich auch nicht liegen, wenn die paar Bits im 
AD1CON2-Register über Normalbetrieb oder Fehler entscheiden. Ich würde 
das nur gerne einfach verstehen, was da vor sich geht.

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.