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); } }
Passen denn die Pins? Hast du nen Schaltplan/Foto? Sonst hilft nur die Glaskugel ;)
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?
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.
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.
Also es gibt kein Fehler, das Programm wird fehlerfrei übersetzt. und aus dem SPI kommt auch was raus.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.