Forum: Mikrocontroller und Digitale Elektronik PIC18F2585 und CCP


von HD_ (Gast)


Lesenswert?

HAllo,

ich habe ein Problem, wie so viele die hier posten!

ich benutze einen PIC18F2585 und bräuchte das CCP-Modul. Ist auch
vorhanden, allerdings habe ich im Datenblatt feststellen müssen, dass
das CCPR1L und CCPR1H-Register nicht existiert in genanntem Prozessor.
(Finde ich schon echt seltsam)

Wie kann ich trotzdem die CCP-Funktion benutzen ohne sie selbst über
einen Timer zu machen.

Wird vielleicht ein anderes Register stattdessen benutzt? Oder wie
bekomme ich es hin ohne nen interrupt dafür zu benutzen ???

vielen Dank schon mal im voraus
Gruß Holger

von HD_ (Gast)


Lesenswert?

noch nen Nachschlag:

im PIC-Simulator der MPLAB-IDE werden die beiden Register jedoch
angezeigt (nur der Compiler kennt sie nicht)

von Steffen (Gast)


Lesenswert?

Was hast Du denn für einen Compiler?

Entweder sind die Register in der 18F2585.h definiert oder der Zugriff
kann über Sonderfunktionen erfolgen. Zur Not definierst Du dir die
Register eben selbst.

von HD_ (Gast)


Lesenswert?

Danke

hmm, auf der Homepage von HTSOFT gibt es ein Update, mal schaun was das
bringt.

Aber seltsam ist es trotzdem, dass im Datenblatt drinsteht, dass die
beiden Register gar nicht implementiert sein sollen.

Ich bin schon fast der meinung dass das wohl ein Druckfehler ist, da an
anderen Stellen kein Vermerk ist, dass das Register nicht existiert.

von Steffen (Gast)


Lesenswert?

Warum sollten die Register nicht implementiert sein?

CCPR1H=0x0FBF
CCPR1L=0x0FBE

jedenfalls nach meinem Datenblatt.

Wo hast Du denn das gefunden?

von HD_ (Gast)


Lesenswert?

Datei 39625b.pdf (Datenblatt für 18F2585/2680/4585/4680)
Seite 173

ist allerdings wohl die einzige Stelle an der die Fußnote angegeben ist
!

von Steffen (Gast)


Lesenswert?

Da hast Du wohl eine andere Datei wie ich. Du kannst davon ausgehen,
dass es ein Fehler ist.

von Andreas (Gast)


Lesenswert?

Hallo Holger,

wo steht denn da genau, dass CCPR1L/H nicht existieren?

Der 18F2585 hat laut Datenblatt nur einen CCP, keinen ECCP (wie die die
PIC18F4X8X). Die Register CCPR1L/H gehören aber zum CCP1 und sind auch
vorhanden.

Da der Comiler sie nicht kennt, wird entweder ein falsches Headerfile
verwendet oder das des 18F2585 fehlerhaft (ein Fall für HI-Tech).
Sieh' doch mal im Headerfile nach, ob da Zeilen wie

 static volatile unsigned char  CCPR1L  @ 0x0FBF;
 static volatile unsigned char  CCPR1H  @ 0x0FBE;

vorhanden sind.

Andreas

von HD_ (Gast)


Lesenswert?

Direkt von der microchip-homepage(z.B.)
hier der Link:
http://ww1.microchip.com/downloads/en/DeviceDoc/39625b.pdf
dann Seite 173
direkt neben CCPR1L/H steht die Fußnote und darunter der Hinweis
1: These registers are unimplemented on PIC18F2X8X devices.

na das sagt doch alles oder ?

Danke Andreas, siehe erster Post
offensichtlich haben sie es korrigiert, aber ich habe da noch ein
kleines Probl. jetzt mit dem Linken

von Andreas (Gast)


Lesenswert?

Holger,

genau das Datenblatt habe ich auch, aber ich habe verstanden: Auf
Datenblatt-Seite 173. Du meintest aber PDF-Seite 173, das ist
Datenblatt-Seite 171. Da ich die Datenblätter meist in gedruckter Form
habe, sehe ich natürlich die PDF-Seiten nicht.

Andreas

von HD_ (Gast)


Lesenswert?

Ja,
sorry

soviel Papier um mich rum, da kann ich nicht vernünftig arbeiten :-)

von Steffen (Gast)


Lesenswert?

Das ist ein Schreibfehler. Wie Andreas schon gesagt hat betrifft das nur
die ECCPXX-Register.

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.