Forum: Mikrocontroller und Digitale Elektronik Brauche Hilfe wegen OLED display C-Code


von amateur-programmer (Gast)


Lesenswert?

Hallo,
Kann mir bitte jemand helfen,
Ich versuche mit einem ATMega328 auf einem .......... display über SPI 
etwas anzuzeigen aber es klappt nicht.

Ich habe nach diesem "Tutorial" gearbeitet:
https://code.google.com/p/u8glib/wiki/avr

und verwende diese library: (AVR)
https://code.google.com/p/u8glib/

Das wäre mein Programm:

#include <avr/interrupt.h>
#include <avr/io.h>
#include "u8g.h"

u8g_t u8g;

void draw(void)
{
  u8g_SetFont(&u8g, u8g_font_6x10);
  u8g_DrawStr(&u8g, 0, 15,"hello");
}


int main(void)
{

  CLKPR = 0x80;
  CLKPR = 0x00;

  u8g_InitSPI(&u8g, &u8g_dev_ssd1322_nhd31oled_gr_sw_spi, PN(1,5), 
PN(1,3), PN(1,2), PN(2,1), U8G_PIN_NONE );

    while (1)
    {

    u8g_FirstPage(&u8g);
    do
    {
      draw();
    } while ( u8g_NextPage(&u8g) );
    u8g_Delay(100);
    }
}

von SoIstEs (Gast)


Lesenswert?

Passen denn die Pins? Hast du nen Schaltplan/Foto? Sonst hilft nur die 
Glaskugel ;)

von amateur-programmer (Gast)


Angehängte Dateien:

Lesenswert?

Also die Pins sollten passen...
hier ist der Schaltplan

von Rudolph R. (rudolph)


Lesenswert?

Wie wäre es denn für den Einstieg, erstmal das Display "von Hand" über 
den SPI zu initialisieren und ein paar Pixel zu setzen, anstatt sofort 
auf eine Library zu setzen?

von google (Gast)


Lesenswert?

amateur-programmer schrieb:
> Ich versuche mit einem ATMega328 auf einem .......... display über SPI
> etwas anzuzeigen aber es klappt nicht.

Was klappt nicht? Ohne präzise Fehlerbeschreibung kann Dir kaum jemand 
helfen. Dazu mußt Du aber noch was tun, also: Wird Dein Programm ohne 
Warnungen übersetzt? Kommt auf dem SPI was raus? usw.

von M. A. (amateur-programmer)


Lesenswert?

Rudolph R. schrieb:
> Wie wäre es denn für den Einstieg, erstmal das Display "von Hand" über
> den SPI zu initialisieren und ein paar Pixel zu setzen, anstatt sofort
> auf eine Library zu setzen?

Ich weiß nicht genau wie man das macht. Ich kenne mich leider nicht so 
gut darin aus.

von M. A. (amateur-programmer)


Lesenswert?

Also es gibt kein Fehler, das Programm wird fehlerfrei übersetzt.
und aus dem SPI kommt auch was raus.

von Rudolph R. (rudolph)


Lesenswert?

Mustafa A. schrieb:
> Ich weiß nicht genau wie man das macht. Ich kenne mich leider nicht so
> gut darin aus.

Na, das ist doch ein guter Grund, sich mal ein wenig damit zu 
beschäftigen.
Verrat uns doch auch mal, was für ein Display das ist.

Wie man einzelne Bytes über den SPI schickt ist Dir doch sicherlich 
klar?

Da ist doch nichts dran.

Chip-Select setzen, mit D/C für Kommando oder Daten entscheiden, Bytes 
schicken.
Als erstes muss das Display initialisiert werden, dazu steht im 
Datenblatt sicher eine Sequenz die man dem Ding schicken soll.

Danach im einfachsten Fall mal auf Daten umstellen und ein paar 0xff 
Bytes schicken, das sollte ein paar Pixel setzen.

von amateur-programmer (Gast)


Lesenswert?

Es funktioniert herzlichen dank für die Tipps. :)

von Eric B. (beric)


Lesenswert?

amateur-programmer schrieb:
> Es funktioniert herzlichen dank für die Tipps. :)

Und was funktioniert denn? Was hast du geändert damit's funktioniert?

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.