Nokia 3310 LCD Ansteuerung mit MSP430F5438

OP #4376680
Lesenswert?

Hallo,

ich versuche wie bereits oben geschrieben ein NOKIA 3310 LCD mit dem 
MSP430F5438 anzusteuern und etwas auszugeben. Den Code habe ich als 
Anhang beigefügt.
Der Code funktioniert soweit, jedoch nur solange ich in der Funktion 
CLK_init() im Register UCSCTL5 DIVM_x schreibe. Aber der Code 
funktioniert nicht mehr sobald ich beispielsweise DIVS_x schreibe. So 
wie es den Anschein macht, reagiert die SPI Übertragung nicht auf die 
SMCLK sondern nur auf MCLK, obwohl ich bereits im Register UCB2CTL1 
SMCLK als Clock für die SPI-Übertragung ausgewählt habe.
Ich wäre sehr dankbar für nützliche Tipps und Hilfe.
Angehängte Dateien:
#4376870
Lesenswert?

Zumindest die Initialisierung von XT2DRIVE ist falsch, weil "|=" nur 
dann funktioniert, wenn die Bits vorher auf 0 stehen.

Wenn SPI MCLK benutzen würde, dann hätte eine Änderungen von DIVS keinen 
Effekt.

Und was genau meinst du mit "funktioniert nicht"? Hast du kein 
Oszilloskop/Logic Analyzer?
OP #4377476
Lesenswert?

Mir ist schon klar wie Bitmanipulation funktioniert! Aber warum soll ich 
XT2DRIVE löschen? Damit wähle ich doch den Frequenzbereich aus, bei dem 
ich arbeiten möchte.
Ich habe jetzt den Code, der nicht funktioniert als Anhang beigefügt. 
Dort kann man sehen, was ich mit DIVS_X meine und wie ich versuche es zu 
ändern.
Angehängte Dateien:
OP #4377571
Lesenswert?

Ich verstehe nicht, warum in UCSCTL6 der Wert XT2DRIVE_3 stehen soll? 
Woran erkennst du das?
Ich benutze einen 18 MHZ Quarz.
Ich habe auch schon DIVM und DIVS gleichzeitig benutzt und es 
funktioniert nicht. Das Problem ist, dass das ganze nur dann arbeitet 
wenn ich MCLK mit DIVM runterteile, obwohl MCLK für SPI gar nicht 
ausschlaggebend sein sollte.
OP #4378079
Lesenswert?

DIVM = 0 bedeutet doch nur fmclk/1 und DIVM = 4 => fmclk/16. Inwiefern 
sollte die CPU deswegen nicht laufen?
Ich habe eben festgestellt, dass die LCD anzeige läuft, auch wenn ich 
DIVS und DIVM gleichzeitig initialisiere. Bsp. :
DIVM_5 + DIVS_5 => läuft nicht.
DIVM_5 + DIVS_1 => läuft.
Das heißt das DIVM immer "kleiner" sein muss als DIVS damit das ganze 
läuft, aber warum?

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