Mega32 + u8glib: Funktioniert nur direkt nach dem Flashen

OP #3700640
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!
OP
Ich nochmal... leider funktioniert es noch nicht hundertprozentig. Die 
Uebertragung scheint sehr fehlerbehaftet zu sein, bei jedem Neuaufbau 
des Bildes kommt etwas anderes an (siehe Video).

Hat jemand eine Idee bzw. Erfahrungen mit der u8glib (Hardware-SPI)?
Die SPI-Routinen habe ich fuer den Mega32 (hoffentlich) entsprechend 
angepasst (siehe Anhang).
Angehängte Dateien:
Gast
Hatte ein ähnliches Verhalten beim dogs102 am attiny, wollte den Pin für 
RST sparen. Mit RST angeschlossen und bei Init angegeben lief es dann 
zuverlässig.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.