Forum: Mikrocontroller und Digitale Elektronik dsPIC33F: Problem bei Ausgabe auf LCD


von Andreas T. (Gast)


Lesenswert?

Hallo!

Ich verwende den dsPIC33F256GP710 mit dem Explorer 16 Board. Von 
Micorchip wird ein Testprogramm angeboten, welches Werte vom ADC liest 
und auf dem LCD ausgibt. Das funktioniert alles wunderbar.
Das Device läuft auf dem Board mit einem externen Oszillator bei 8 MHz. 
Für meine Anwendung ist das zu langsam. Ich habe deshalb den Takt 
mittels PLL auf 40 MHz gesetzt. Allerdings funktioniert nun das 
Schreiben ans LCD nicht mehr.
Ich konnte feststellen, dass dieses vermutlich an einer delay-Funktion 
liegt, die in den mitgelieferten Source und Header Dateien für das LCD 
verwendet wird.
Im Header delay.h wird ein Wert für den Systemtakt festgelegt, woraus 
dann die Wartezeit berechnet wird:
1
#define Fcy  16000000
2
3
void Delay( unsigned int delay_count );
4
void Delay_Us( unsigned int delayUs_count );
5
6
#define Delay200uS_count  (Fcy * 0.0002) / 1080
7
8
...
Hier ist der Takt anscheinend auf 16 MHz eingestellt. Wenn ich diesen 
Wert nun auf 40 MHz ändere, funktioniert die Ausgabe aufs LCD dennoch 
nicht.
Eigentlich sollte das Testprogramm ja auch bei 8MHz laufen, deshalb 
verwundern mich auch die 16 MHz.
Eine Änderung auf 80 MHz hat aber auch nicht geholfen.

Den Systemtakt 40MHz für meine Anwendung habe ich anscheinend korrekt 
eingestellt da zb die serielle Übertragung zum PC über UART 
funktioniert.

Ich hoffe ich habe meine Problem verständlich dargestellt.

von Andreas T. (Gast)


Lesenswert?

Zur Info....

Problem gelöst:

In den verwendeten Sources für das LCD werden neben den benannten 
delay-Befehlen auch nop()-Anweisungen benutzt.
Ich habe die Anzahl der der "nops" auf den neuen Systemtakt angepasst 
und nun funktioniert die Übertragung zum Display.

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.