Forum: Mikrocontroller und Digitale Elektronik Nokia LCD: Problem mit SBI


von Jens D. (jens) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hallo, cih habe hier den Code:
1
while ((SPSR & (1<<SPIF)) != (1<<SPIF))
2
{
3
   PORTC |= 2;
4
   nop();
5
}
6
PORTC &= 2;

Mein Problem ist PC2 leuchtet immer :( spwich er haenngt in der While
schleife aber warum?
was mich wundert ist, das ich 2 .. 3 mal Daten senden kann und dann auf
ein mal ende
ich habe schon diverse Taktfrequenzen getestet nichts..
Hat jemad eine idee, woran das liegen koennte??

Im Anhang habe ich mal die nokia_lcd.c beigefuegt

Gruss Jens

von Rolf Magnus (Gast)


Lesenswert?

> Mein Problem ist PC2 leuchtet immer

Das würde ich auch erwarten. Zuerst schaltest du in der Schleife PC2
ein. Dann schaltest du nach der Schleife alle außer PC2 aus. Meintest
du nach der Schleife vielleicht:
1
PORTC &= ~2;

von Jens D. (jens) Benutzerseite


Lesenswert?

Ooops stimmt, da ist ein kleiner Fehler..
Aber es ist dennoch diese Schleife, weil ich in einem Interrupt Portc
mit &0b00000001 verknuepfe und somit jede sekunde alles auf 0 setze..
PC1 Blinkt (wird im Interrpt Handler retoggelt)

Nur woran koennte das liegen, dass das Register nicht leer wird?

von Jens D. (jens) Benutzerseite


Lesenswert?

Hallo
µC: mega16
ich habe mir das eben nochmal angeguckt..
die /SS Leitung (LCD_CE_PIN) kane ich auf PB1 (T1)
kann es sein, dass sie fuer den SPI Bus nötig ist?
Aber wieso lief das Display damals mit der Konfiguration?
ich musste nur wieder cpi spi .. abaendern

Die Ports habe ich so gesetzt:
#define LCD_DC_PIN                 PB0
#define LCD_CE_PIN                 PB1 richtig???
#define SPI_MOSI_PIN               PB5
#define LCD_RST_PIN                PB6
#define SPI_CLK_PIN                PB7

Gruss Jens

von Jens D. (jens) Benutzerseite


Lesenswert?

Hallo, also es haenngt an deser schleiffe..
Ichh abe es mir mit JTAG angeguckt..

while ( (SPSR & 0x80) != 0x80 );
{
   nop();
}

3 .. 4 mal klappt es und dann setzt er das SPIF flag nicht im SPSR
Register (SPI)

woran koennte das liegen?

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.