Hallöchen, habe folgendes Problem: Ich habe ein "TG12864B-13" Grafik-Display 128x64px. Dieses versuche ich schon seit längerem ohne Erfolg anzusteuern. Ich versuche dies mit der Lib von ape. Schaltungstechnisch ist nach stundenlangem Testen auch fehler ausgeschlossen, nur das Display zeigt meistens nichts an. Nach mehrmaligen Reset wird evtl mal auf der zweiten Bildschirmhälfte (Chip2 ?) undefinierbare Pixcel angezeigt, die aber auch nie einander gleichen.... Ich habe die Lib so 1 zu 1 übernommen jedoch natürlich die #defines meiner Pinbelegung angepasst. Die Schaltung seht ihr oben, und hier meine Änderungen in der Lib (Datei ks0108.h): --------------------------------------------- #include <inttypes.h> #include <avr/pgmspace.h> #ifndef KS0108_H #define KS0108_H // Ports #define LCD_CMD_PORT PORTC // Command Output Register #define LCD_CMD_DIR DDRC // Data Direction Register for Command Port #define LCD_DATA_IN PIND // Data Input Register #define LCD_DATA_OUT PORTD // Data Output Register #define LCD_DATA_DIR DDRD // Data Direction Register for Data Port // Command Port Bits #define D_I 0x00 // D/I Bit Number #define R_W 0x01 // R/W Bit Number #define EN 0x02 // EN Bit Number #define CSEL1 0x03 // CS1 Bit Number #define CSEL2 0x04 // CS2 Bit Number // Chips #define CHIP1 0x00 #define CHIP2 0x01 // Commands #define LCD_ON 0x3F #define LCD_OFF 0x3E #define LCD_SET_ADD 0x40 #define LCD_SET_PAGE 0xB8 #define LCD_DISP_START 0xC0 // Colors #define BLACK 0xFF #define WHITE 0x00 // Font Indices #define FONT_LENGTH 0 #define FONT_FIXED_WIDTH 2 #define FONT_HEIGHT 3 #define FONT_FIRST_CHAR 4 #define FONT_CHAR_COUNT 5 #define FONT_WIDTH_TABLE 6 // Uncomment for slow drawing // #define DEBUG ------------------------------------------ Ich frage mich ehrlich gesagt was der Fehler ist. Ich takte meinen ATmega 16 mit 8MHz internem Clock. Laut Datenblatt sollten Zeiten des Busy-Flags oder die Zeit der Enable-Flanke nicht unterschritten werden durch die Libary?! Das Datenblatt des Displays habe ich begefügt. In den anderen Threads zu diesem Thema habe ich keine Lösung gefunden und habe deshalt einen eigenen eröffnet ;) schon mal viele Dank Mfg, Hans ;)
hi, was ist denn JTAG überhaupt genau und warum muss es bei dem Display ausgeschaltet sein? also bei den Fuses von Burn-O-Mat ist bei Enable JTAG nen Häkchen
JTAG: http://www.mikrocontroller.net/articles/JTAG liegt auf dem gleichen Port wie dein Display. muss in den FUses deaktiviert werden.
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.