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.