Forum: Mikrocontroller und Digitale Elektronik PIC16LF chipreset bei gets() ccsc


von Pete J. (redhead)


Lesenswert?

Hallo,

Ich sitze grade dabei einen PIC16LF726 zu programmieren.

dabei benutze ich eine serielle Schnittstelle (Softwareschnittstelle) 
welche ich folgendermaßen initialisiert habe:
#use rs232(STREAM=GPRS, BAUD=57600 ,  XMIT=PIN_C4,RCV=PIN_C3)

ich benutze dazu ein externes 20 MHz Crystal. Der uC läuft auch perfekt 
Aber sobald ich ein gets() oder getc() aufrufe startet sich der IC 
automatisch neu. Mit RESTART_CAUSE() hab ich herausgefunden, dass der 
Grund dafür MCLR_FROM_RUN ist. Ich habe auch schon mit FUSES NOMCLR 
versucht diese Neustarts zu unterdrücken aber ohne erfolg. Das komische 
ist auch, dass wenn ich den RCV Pin von C3 auf B3 wechsele es kein 
Problem gibt wobei beide normale I/O Ports sind. C3 kann lediglich auch 
als SCL/SCK Pin für den i2c Bus genommen werden.

Das Problem ist, dass ich die Platine schon geätzt habe und eine neue zu 
entwerfen/ätzen/bestücken ne ziemliche Plackerei wäre.

Ich benutze als Programmer den ICD_U40

Hat jemand von euch ne Idee wo der Fehler liegen könnte. Google konnte 
mir nur bedingt helfen indem ich ein paar NOPs in die Gets() Funktion 
einsetze aber ich komm an den Quellcode von gets() nicht ran.

Ich wäre für jede Hilfe sehr dankbar

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.