PIC16LF chipreset bei gets() ccsc

OP #1257804
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren