Hallo zusammen,
habe hier gerade folgende Konstellation vor mir: ATMega32, an dem ein
kleines OLED-SPI-Display mit SSD1306-Controller haengt (CLK an PB7, MOSI
an PB5, CS an PB4, D/C an PB1). Habe mir mangels Lust, tiefer in das
Datenblatt einzusteigen, die u8glib runtergeladen. Das funktioniert
auch... zumindest zeigt das Display nach dem Flashen des Programms was
an. Aber auch nur direkt nach dem Flashen. War dann einmal der Strom
weg, bleibt das Display dunkel (Programm laeuft aber, LED blinkt).
Code sieht folgendermassen aus:
1 | #include <avr/interrupt.h>
|
2 | #include <avr/io.h>
|
3 | #include "u8g.h"
|
4 | u8g_t u8g;
|
5 |
|
6 | void draw(void)
|
7 | {
|
8 | u8g_SetFont(&u8g, u8g_font_6x10);
|
9 | u8g_DrawStr(&u8g, 0, 15, "Hallo Welt!");
|
10 | u8g_DrawStr(&u8g, 0, 40, "Hallo Welt!");
|
11 |
|
12 | }
|
13 |
|
14 |
|
15 | int main(void)
|
16 | {
|
17 | DDRB = 0b11111111;
|
18 |
|
19 | u8g_InitSPI(&u8g, &u8g_dev_ssd1306_128x64_hw_spi, PN(1, 7), PN(1, 5), PN(1, 4), PN(1, 1), U8G_PIN_NONE);
|
20 |
|
21 | for(;;)
|
22 | {
|
23 | u8g_FirstPage(&u8g);
|
24 | do
|
25 | {
|
26 | draw();
|
27 | } while ( u8g_NextPage(&u8g) );
|
28 | u8g_Delay(100);
|
29 | PORTB ^= ( 1 << PB2 ); // Blinke-LED
|
30 | }
|
31 | return 0;
|
32 | }
|
Habt ihr irgendwelche Ideen, woran das liegen koennte?
Vielen Dank schonmal!