Guten Tag Allen, ich als blutiger Anfänger habe ein Problem, welches ich auch nach vielen Stunden Recherchen nicht habe lösen können. Vielleicht möchte mir jemand versuchen zu helfen. Grundlegend läuft die Anwendung zur Digitalisierung von 16 NTC Sensoren. Lediglich den berüchtigten MCLR PIN RE3 bekomme ich einfach nicht in den Griff. Der RE3 soll als normaler Eingangspin arbeiten. Liegt er jedoch auf H, "stottert", die Schaltung. EIn angeschlossenens LCD-Display beschreibt zwei Zeilen korrekt, aber immer wieder von vorn. Angeschlossene LEDs blinken trotz dauerhaften H. Das ganze in einem ca. 2 Hz Takt. Sobald RE3 nicht mehr auf H liegt , läuft das Programm wie gewünscht. Dazu muss ich erwähnen, das RE3 programmtechnisch noch nicht verwendet wird. Es muss also ein Konfigurationsproblem vorliegen. Es scheint gerade so, als ob der Chip in die niedrig Volt Programmierung gehen möchte (?). LVP habe ich aber hoffentlich mit dem Konfigurationswort CONFIG4H verlässlich deaktiviert. Standardmäßich ist ja LVP auch deaktiviert. Es gibt ja dann noch ein Register Interrupt on Change. Aber kann das Ärger machen ? Die Konfigurationswörter sehen wie folgt aus : CONFIG1L : $300000 : 0x0004 CONFIG1H : $300001 : 0x000B CONFIG2L : $300002 : 0x00FE CONFIG2H : $300003 : 0x00BF CONFIG3L : $300004 : 0x007F CONFIG3H : $300005 : 0x003F CONFIG4L : $300006 : 0x009F CONFIG4H : $300007 : 0x000F CONFIG5L : $300008 : 0x0001 Register habe ich folgt beschrieben : TRISA = 0xFF TRISB = 0xFF 'alle Bits auf Eingang TRISC = %00000000 ' 1 ist EIngang /0 = ist Ausgang TRISD = %11110000 LATE = %00000000 TRISE = %00000000 ANSELA = 0xFF ANSELB = 0xFF ANSELC = 0x00 ANSELD = 0x00 ANSELE = 0x00 CM1CON1 = 0x00 CM2CON1 = 0x00 INLVLA = 0x00 ' Spannungspegel auf TTL Input Level Control Register INLVLB = 0x00 INLVLC = 0x00 INLVLD = 0x00 INLVLE = 0x00 WPUA = 0x00 'PullUp Widerstände aus bei 0 WPUB = 0x00 WPUC = 0x00 WPUD = 0x00 WPUE = 0x00 ODCONA = 0x00 ' OpenDrain Control Register ODCONB = 0x00 ODCONC = 0x00 ODCOND = 0x00 ODCONE = 0x00 IOCEP = 0x00 ' Interrupt of Change abschalten PIE0 = 0x00 ' Peripherie Interrupt abschalten Das Programm verwendet auch den Watch Dog. Es ist daher denkbar, dass eine mir nicht ersichtliche Funktionsweise einer Steuerfunktion den Programmablauf stoppt. Wie gesagt RE3 wird programmtechnisch nicht verwendet. Ist RE3 = 0 läuft alles wie gewünscht. Hat jemand einen Ansatz ? Vielen Dank denen, die sich die Zeit genommen haben, bis hier her zu lesen ;) Grüsse PS: Bitte die vielen Leerzeilen entschuldigen, mir ist es nicht gelungen, die Auflistung übersichtlich zu gestalten. Ohne Leerzeile wurden die Aufzählung hintereinander geschrieben, das war sehr unübersichtlich....
Ohne Details zu lesen: WATCHDOG muss evtl. de-aktiviert werden. Gruss
Erich schrieb: > WATCHDOG muss evtl. de-aktiviert werden. Mit deaktivierten WatchDog verhält sich die Geschichte leider genauso. Habs gleich nochmal probiert. Allerdings brauch ich den WatchDog auch. Trotzdem Danke.
Peter K. schrieb: > Wie ist denn MCLR PIN RE3 beschaltet ? Momentan mit 10k gegen Vss. Sonst läuft's ja nicht ....
:
Bearbeitet durch User
Fred F. schrieb: > Momentan mit 10k gegen Vss. Sonst läuft ja nicht .... Ich habe irgendwie im Kopf, dass die MCLR-Pins mehr Strom ziehen als die anderen GPIOs als Input. Nimm mal 1k oder 2.k als Pullup. Es gibt zwar eine Empfehlung von Microchip für den Pullup für 10k, aber da ist noch ein weiterer R und ein C im Spiel, siehe Datenblatt Page 23
Teo schrieb: > LVP muss aus sein! Wie beschrieben, LVP sollte aus sein. Ist doch im Config4H auf Bit5 und ist dort genullt ... da Config4H auf 0F steht also 00001111, oder mach ich da was falsch ?
Lagers schrieb: > Ich habe irgendwie im Kopf, dass die MCLR-Pins mehr Strom ziehen als die > anderen GPIOs als Input. Nimm mal 1k oder 2.k als Pullup. Es gibt zwar > eine Empfehlung von Microchip für den Pullup für 10k, aber da ist noch > ein weiterer R und ein C im Spiel, siehe Datenblatt Page 23 Es ändert sich auch nichts, wenn Vss (GND) direkt am Pin liegt. Wie gesagt, der Pin hat eigentölich noch keine Verwendung. Ziehe ich ihn hoch , hakelt es. Ist er Low läufts. MCLR ist sowieso aus und würde sich ja auch genau anders herum verhalten.
Wenn der RE3 Pin als MCLR Pin in den Fuses gesetzt ist dann muss RE3 auf Plus und nicht auf Minus.
Peter K. schrieb: > Wenn der RE3 Pin als MCLR Pin in den Fuses gesetzt ist > dann muss RE3 auf Plus und nicht auf Minus. MCLR ist aus !!!
Wenn du mit LV-Programmierst, wird das setzen auf 0 des LVPbits ignoriert!?
Teo D. schrieb: > Wenn du mit LV-Programmierst, wird das setzen auf 0 des LVPbits > ignoriert!? Danke für den Hinweis, habe ich nochmal überprüft. PickIt3 und LVP ist nicht angehakt. Aber Danke für den Hinweis. Es ist zum verzweifeln....
Problem gelöst. Habe bewusst mal mit LVP programmiert und danach wieder mit Hochvolt. Nun funktioniert es, wie gewünscht. Vielleicht hing was, in der Programmierumgebung. Offensichtlich ist er wirklich mit LVP programmiert worden. Danke an alle und an Teoderix für die Initialisierung meiner Handlungen... ;) !! Allen einen schönen Tag und schönes Wochenende!
Man muss halt nur lange genug im Trüben stochern.... ;) Dir auch noch nen schönen Restsommer.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.