Hallo zusammen,
Ich betreibe ein Siemens S65 Display mit der glcd-lib per SPI.
Das Display hängt an den entsprechenden Leitungen meines Mega644P:
- LCD_DAT an MOSI
- LCD_CLK an SCK
- LCD_CS an SS
- LCD_RESET an PB0
- LCD_RS an PB2
Funktioniert auch alles wunderbar mit der Ansteuerung. Nur jetzt wollte
ich eine PWM in Betrieb nehmen und plötzlich bricht das Display
zusammen.
Mein Codeschnipsel
1 | glcdDisplayInit();
|
2 | printString("String");
|
3 |
|
4 | DDRB |= (1<<PB3);
|
5 | DDRD |= (1<<PD7);
|
6 | ...
|
7 |
|
8 | // Timer 0 A für PWM
|
9 | //TCCR0A |= (1<<COM0A1) | (1<<WGM01) | (1<<WGM00);
|
10 | //TCCR0B |= (1<<CS01) | (1<<CS00);
|
11 | //TIMSK0 |= (1<<OCIE0A);
|
12 | //OCR0A = 252;
|
13 |
|
14 | // Timer 2 A für PWM
|
15 | TCCR2A |= (1<<COM2A1) | (1<<WGM21) | (1<<WGM20);
|
16 | TCCR2B |= (1<<CS21) | (1<<CS20);
|
17 | TIMSK2 |= (1<<OCIE2A);
|
18 | OCR2A = 200;
|
Wie ihr seht, hab ich es schon mit Timer 1 und 2 versucht, hab einfach
ne LED am Vorwiderstand dran. Die PWM funzt auch (sieht man an der LED).
Ich habe auch schon versucht das Display in Ruhe initialisieren zu
lassen (2 sek Pause bis sei()). Hilft nix.
Symptom am LCD: Bild "blendet" aus (~0.5 s), dann leuchten alle Pixel,
dann kommt das Bild wieder und es blendet wieder aus usw.
Stört der Timer die SPI-Kommunikation? Bin ratlos...