Programmer, Debugger problem mit MPLAB - PIC 18f4520

OP #2339754
Lesenswert?

Hallo Zusammen.

Ich bin zurzeit dran, ein Bewässerungscomputer in C zu programmieren.

Ich bin schon recht weit, doch seit ich nicht mehr das Picdem Board 
benütze, sondern meine eigene Konstruktion für den späteren 
Bewässerungscomputer, habe ich ein Problem mit dem Programmer, und 
Debugger.
Ich benütze das MPLAB ICD 3 zum Programmieren

Beim Programmer steht am schluss:

Programming...
Programming/Verify complete

aber auf dem 4 Zeilen Display leuchtet nur die 1. und 3. Zeile.

Wenn ich den Debugger nehme, und Play drücke, bleibt das Display beim 1. 
mal dunkel. Danach muss ich es nochmals neu Übersetzen, und jetzt 
funktioniert es aber vollumfänglich.

Das ist aber eignetlich fast jedes mal so, das ich alles 2 mal 
übersetzen muss, das es wenigstens im Debugger Mode läuft.

Ich benütze ein 24V 18W Netzteil, und zusätzlich ein StepDown converter 
auf 5 V (IQ2405S).

Wenn ich den PIC18f4520 von meiner Konstruktion aufs Picdem 2 Plus Board 
stecke, sehe ich, das der Mikrocontroller nicht programmiert wurde.

Wenn ich ihn dann auf dem Picdem Board Programmiere, und wieder auf 
meine konstruktion stecke, leuchten nur wieder nur die erste und dritte 
Zeile hell!

Wo könnte da am ehesten das Problem sein? Wie gesagt, der Code und die 
Displayansteuerung funktioniert eigentlich, aber nur im Debugger Mode, 
und nur jedes 2. mal!

Wenn ihr noch mehr Angaben braucht, dann sagt mir das :-)


Danke schon mal für die Hilfe.
Gast #2339902
Lesenswert?

>Wo könnte da am ehesten das Problem sein? Wie gesagt, der Code und die
>Displayansteuerung funktioniert eigentlich, aber nur im Debugger Mode,
>und nur jedes 2. mal!

>Wenn ihr noch mehr Angaben braucht, dann sagt mir das :-)

Sourcecode? Welches Display?

Sieht so aus als wenn das Display nicht
richtig initialisiert wird, oder nach Powerup
nicht lange genug gewartet wird bevor das Display
beschrieben wird.
OP #2339932
Lesenswert?

ich habe hier mal ein anderer (kleinerer Source Code) hochgeladen, mit 
dem ich das Display ausgetestet habe. Dieser Code ist um ein vielfaches 
kleiner, und auch eher den Fehler zu finden.

Die probleme sind bei diesem Code aber die Selben

display4zeilen.c  = Programm Code
XLCD Dateien = Displayansteuerung


Das Display ist:

YMFC-C2004  LCD Display 4*20 char
Controller sollte der selbe wie der HD44780 sein.


Ich hoffe das hilft schon ein wenig
Angehängte Dateien:
Gast #2339968
Lesenswert?

1
void DelayPORXLCD(void)   // minimum 15ms
2
{
3

4
Delay100TCYx(0xA0*4/PIC_Osc_MHz);    // 100TCY * 160
5
return;
6
}

Das A und O bei LCDs ist es die Zeiten einzuhalten.
Dann klappt es eigentlich immer. Hast du mal kontrolliert
ob die Zeit für die Routine oben auch stimmt?
Wo kommt PIC_Osc_MHz her? Welchen Wert hat es?

Ich würde das eher so machen:

Delay100TCYx( (0xA0 * 4) / PIC_Osc_MHz);    // 100TCY * 160

Ich gebe meinen Displays auch etwas mehr Zeit.
Statt 15ms eher 50ms damit auch alte Displays
mit den Routinen funktionieren.
OP #2339984
Lesenswert?

Das mit den Zeiten kontrollieren für die Routine ist bei mir noch n 
bisschen ein problem. Muss mich da sicher noch ein wenig einlesen. 
Bisher habe ich nur immer mit dem Picdem Board gearbeitet, und dem 
Display was da drauf ist gearbeitet.
Und da hat es bisher wunderbar geklappt, darum habe ich mich in dem 
Thema noch nicht so eingelesen.

Ich habe die Klammern mal so geändert, nützt aber leider nichts.

PIC_Osc_MHz ist im Source File ganz oben definiert, mit 4 MHz.

Habe mit dem Pic18f4520 immer mit dieser einstellung gearbeitet.


Danke aber schon mal für die Hilfe
OP #2358450
Lesenswert?

Ich bin jetzt schon ein wenig weiter.
Das problem mit dem 2 mal debuggen habe ich gelöst. Ist sicher nicht die 
beste Lösung, die ich gewählt habe aber zumindest klappt es. Ich 
initialisiere das Display 2 mal hintereinander beim Start. Das war das 
einzige was irgendwie geholfen hat.

Jetzt habe ich aber immer noch das Problem, das es bei dem eigenbau nur 
im Debugging modus geht, und nicht im Programmer modus. Auf dem Picdem 2 
Plus Board läuft es aber tadellos.

Ich habe mal die Schaltung angehängt.

Ich hoffe, mir kann bei dem Problem noch irgend jemand helfen.
Angehängte Dateien:

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