Hallo Leute ich habe ein PollinDisplay TG12864B-03 auf meinen Atmega32
laufen, nur leider sieht das das Display so aus wie im angehängten Bild.
Hier mal mei n Quellcode vom main.c
habe DB0 -7 an Port A und die Controlleitungen an Port B angeschlossen:Code:#include <avr/io.h> #include <avr/pgmspace.h> #include <avr/delay.h> #include "ks0108.h" #include "font12x16.h" #include "font6x8.h" const char pgmString[] PROGMEM = "http://www.apeTech.de\n\naffe.t@gmx.de"; int main(void) { volatile uint16_t i; struct font largeFont, smallFont; for(i=0; i<15000; i++); largeFont.width = FONT12X16_WIDTH; largeFont.height = FONT12X16_HEIGHT; largeFont.charData = Font12x16; smallFont.width = FONT6X8_WIDTH; smallFont.height = FONT6X8_HEIGHT; smallFont.charData = Font6x8; ks0108Init(); ks0108GotoXY(20,0); ks0108PutString("Ha", largeFont); while(1);
hier der Quellcode:
Das ganze ist von hier:http://www.mikrocontroller.net/topic/12202#new leider hat dort schon lange niemnad mehr hingeschaut.Code:#include <inttypes.h> #include <avr/pgmspace.h> #ifndef KS0108_H #define KS0108_H // Ports #define LCD_CMD_PORT PORTB // Command Output Register #define LCD_CMD_DIR DDRB // Data Direction Register for Command Port #define LCD_DATA_IN PINA // Data Input Register #define LCD_DATA_OUT PORTA // Data Output Register #define LCD_DATA_DIR DDRA // Data Direction Register for Data Port // Function Parameters #define INCREMENT_X 0 #define NO_INCREMENT_X 1 // 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 // Fill Modes #define BLACK 0xFF #define CLEAR 0x00 // Uncomment for slow drawing // #define DEBUG struct displayPos { uint8_t x; uint8_t y; uint8_t page; }; struct font { uint8_t width; uint8_t height; PGM_P charData; }; // Function Prototypes void ks0108Enable(void); void ks0108Fill(uint8_t mode); void ks0108GotoXY(uint8_t, uint8_t); void ks0108Init(void); void ks0108SetDot(uint8_t, uint8_t); void ks0108ClearDot(uint8_t, uint8_t); void ks0108PutChar(char c, struct font font); void ks0108NewLine(uint8_t fontHeight, uint8_t offset); void ks0108PutString(char *string, struct font font); void ks0108PutStringP(PGM_P string, struct font font); char ks0108ReadData(uint8_t incXAdd); void ks0108WriteCommand(uint8_t cmd, uint8_t chip); void ks0108WriteData(uint8_t data); #endif
Wie ihr auf dem Bild sehen könnt passt irgendwas mit den Pages nicht, kann es ein verkabelungsproblem sein? habe aber alles schon 2 mal kontrolliert.
Für eure Hilfe wäre ich sehr dankbar.







Zitieren

Lesezeichen