-
Notifications
You must be signed in to change notification settings - Fork 77
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
support 1.5" oled (SEPS225) controller #47
Comments
/* Test code for driving UG2828GDEAF02 1,5# OLED // 4-wire SPI(BS1=0; BS2=0) #define DODELAY asm("nop\n\t""nop\n\t"); #ifndef FASTIO // HVEN(optional) #define RES_PORT PORTB #define OLED_RES_1 RES_PORT |= (RES_PORTPIN) #define Max_Column 0x7f // 128-1 #define MAKECOLOR64k(r,g,b) (unsigned short int)((((unsigned short int)(r)>>3)<<11)|(((unsigned short int)(g)>>2)<<5)|((unsigned short int)(b)>>3)) //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= inline void Write_Command(unsigned char Data) inline void Write_Data(unsigned char Data) OLED_CS_0; void OLED_InitIOs(void) //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= OLED_RES_0; // Disp OFF // OSC_CTL // MEMORY WRITE MODE //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= void Set_Pixel_Format(unsigned char d) void Set_Display_On_Off(unsigned char d) inline void Set_Column_Address(unsigned char a, unsigned char b) inline void Set_Row_Address(unsigned char a, unsigned char b) inline void Set_Display_Offset(unsigned char a, unsigned char b) inline void Set_Write_RAM() void Fill_RAM(unsigned char a, unsigned char b) Set_Display_Offset(0x00,0x00); for(i=0;i<128;i++) //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Set_Display_Offset(a,c); for(i=0;i<(d-c+1);i++) void Fill_Block64k(unsigned char xLeft, unsigned char yTop, unsigned char xRight, unsigned char yBottom, unsigned short int colFill) col1 = colFill>>8; //Line Color - CCCCCBBB Set_Write_RAM(); for(i=0;i<w;i++) { //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Src_Pointer=Data_Pointer; Set_Display_Offset(x1,y1); for(i=0;i<(y2-y1+1);i++) void Show_64k_Pattern_LittleEndia(unsigned char *Data_Pointer, unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2) Src_Pointer=Data_Pointer; Set_Display_Offset(x1,y1); for(i=0;i<(y2-y1+1);i++) void Draw_Point64k_Slow(unsigned char x, unsigned char y, unsigned short int col) Write_Data(col>>8); // Line Color - CCCCCBBB #define DrawPoint Draw_Point64k_Slow dy = Y2 - Y1; if (dy < 0) if (dx < 0) dy <<= 1; // dy is now 2_dy if (dx > dy)
} // �对称� //Bresenham's circle algorithm
} Set_Display_Offset(0x00,0x00); for(i=0;i<64;i++) //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= // Yellow => Column 21~40 // Purple => Column 41~60 // Cyan => Column 61~80 // Red => Column 81~100 // Green => Column 101~120 // Blue => Column 121~140 // Black => Column 141~160 const unsigned char Icon24x24x64k[] ={ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x18,0xef,0x30,0xde, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbd,0xff,0x52,0xe6,0x0e,0xe6,0xf1,0xf6, 0xff,0xff,0xff,0xff,0xff,0xff,0x9c,0xf7,0xef,0xdd,0x8f,0xee,0x2f,0xff,0xcb,0xfe, 0xff,0xff,0xff,0xff,0xbd,0xff,0xef,0xdd,0x8e,0xf6,0x0c,0xff,0xa8,0xfe,0xa8,0xfe, 0xff,0xff,0xff,0xff,0x93,0xe6,0x6c,0xee,0x0b,0xff,0xa8,0xfe,0xa9,0xfe,0xc9,0xfe, 0xff,0xff,0x5a,0xf7,0x0b,0xe6,0xca,0xfe,0xa8,0xfe,0xa9,0xfe,0xc9,0xfe,0xc9,0xfe, 0xff,0xff,0x52,0xe6,0x89,0xf6,0xe8,0xfe,0xc9,0xfe,0xa9,0xfe,0xa9,0xfe,0x88,0xfe, 0x9d,0xf7,0xeb,0xe5,0x87,0xfe,0xc7,0xfe,0xc8,0xfe,0xa8,0xfe,0xe8,0xfe,0x45,0xd5, 0x19,0xef,0x86,0xe5,0x87,0xfe,0x67,0xfe,0x87,0xfe,0x87,0xfe,0xa7,0xfe,0xe3,0xb3, 0xd7,0xee,0xc5,0xe5,0x87,0xfe,0x67,0xfe,0x67,0xfe,0x67,0xfe,0x87,0xfe,0x66,0xbc, 0x95,0xe6,0xe5,0xed,0x87,0xfe,0x67,0xfe,0x67,0xfe,0x47,0xfe,0x26,0xfe,0x2b,0xf6, 0xb6,0xee,0xa5,0xed,0x67,0xfe,0x67,0xfe,0x27,0xfe,0x26,0xfe,0x26,0xfe,0x26,0xfe, 0xf8,0xee,0x85,0xe5,0x46,0xfe,0x27,0xfe,0x26,0xfe,0x25,0xfe,0xe5,0xf5,0xe6,0xf5, 0x5b,0xf7,0x87,0xe5,0x26,0xfe,0x26,0xfe,0x26,0xfe,0x45,0xdd,0xe6,0xd4,0xe6,0xfd, 0xff,0xff,0xcd,0xdd,0xe5,0xf5,0x26,0xfe,0xe5,0xf5,0x07,0xcd,0x49,0xdd,0xe5,0xd4, 0xff,0xff,0x95,0xe6,0x86,0xe5,0x06,0xfe,0xe6,0xfd,0xa8,0xed,0xe7,0xfd,0xa9,0xe5, 0xff,0xff,0xbe,0xff,0xac,0xdd,0xc6,0xf5,0xe6,0xfd,0xc6,0xfd,0x85,0xfd,0xc5,0xfd, 0xff,0xff,0xff,0xff,0x19,0xef,0x47,0xdd,0xc6,0xfd,0xa5,0xfd,0x64,0xf5,0x65,0xf5, 0xff,0xff,0xff,0xff,0xff,0xff,0xb5,0xe6,0x26,0xd5,0xc7,0xf5,0x85,0xfd,0x44,0xf5, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xb6,0xe6,0x49,0xdd,0x87,0xf5,0xa7,0xfd, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5a,0xf7,0xce,0xdd,0x27,0xdd, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x19,0xef, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, void draw_lines(void) for (i=0; i<1000; i++) { void draw_circles(void) // draw unfilled circles void setup() { // OLED_HVEN_1; //+12V on } // do put code in loop func |
Display hardware problem? The picture is generated with the provided example code: /* Test code for driving UG2828GDEAF02 1,5# OLED // 4-wire SPI(BS1=0; BS2=0) #define RST_PIN 8 #define DODELAY asm("nop\n\t""nop\n\t"); #ifndef FASTIO // HVEN(optional) #define RES_PORT PORTB #define OLED_RES_1 RES_PORT |= (RES_PORTPIN) #define Max_Column 0x7f // 128-1 #define MAKECOLOR64k(r,g,b) (unsigned short int)((((unsigned short int)(r)>>3)<<11)|(((unsigned short int)(g)>>2)<<5)|((unsigned short int)(b)>>3)) //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= inline void Write_Command(unsigned char Data) inline void Write_Data(unsigned char Data) OLED_CS_0; void OLED_InitIOs(void) //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= OLED_RES_0; // Disp OFF // OSC_CTL // MEMORY WRITE MODE //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= void Set_Pixel_Format(unsigned char d) void Set_Display_On_Off(unsigned char d) inline void Set_Column_Address(unsigned char a, unsigned char b) inline void Set_Row_Address(unsigned char a, unsigned char b) inline void Set_Display_Offset(unsigned char a, unsigned char b) inline void Set_Write_RAM() void Fill_RAM(unsigned char a, unsigned char b) Set_Display_Offset(0x00,0x00); for(i=0;i<128;i++) //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Set_Display_Offset(a,c); for(i=0;i<(d-c+1);i++) void Fill_Block64k(unsigned char xLeft, unsigned char yTop, unsigned char xRight, unsigned char yBottom, unsigned short int colFill) col1 = colFill>>8; //Line Color - CCCCCBBB Set_Write_RAM(); for(i=0;i<w;i++) { //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Src_Pointer=Data_Pointer; Set_Display_Offset(x1,y1); for(i=0;i<(y2-y1+1);i++) void Show_64k_Pattern_LittleEndia(unsigned char *Data_Pointer, unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2) Src_Pointer=Data_Pointer; Set_Display_Offset(x1,y1); for(i=0;i<(y2-y1+1);i++) void Draw_Point64k_Slow(unsigned char x, unsigned char y, unsigned short int col) Write_Data(col>>8); // Line Color - CCCCCBBB #define DrawPoint Draw_Point64k_Slow dy = Y2 - Y1; if (dy < 0) if (dx < 0) dy <<= 1; // dy is now 2_dy if (dx > dy)
} // �对称� //Bresenham's circle algorithm
} Set_Display_Offset(0x00,0x00); for(i=0;i<64;i++) //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= // Yellow => Column 21~40 // Purple => Column 41~60 // Cyan => Column 61~80 // Red => Column 81~100 // Green => Column 101~120 // Blue => Column 121~140 // Black => Column 141~160 const unsigned char Icon24x24x64k[] ={ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x18,0xef,0x30,0xde, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbd,0xff,0x52,0xe6,0x0e,0xe6,0xf1,0xf6, 0xff,0xff,0xff,0xff,0xff,0xff,0x9c,0xf7,0xef,0xdd,0x8f,0xee,0x2f,0xff,0xcb,0xfe, 0xff,0xff,0xff,0xff,0xbd,0xff,0xef,0xdd,0x8e,0xf6,0x0c,0xff,0xa8,0xfe,0xa8,0xfe, 0xff,0xff,0xff,0xff,0x93,0xe6,0x6c,0xee,0x0b,0xff,0xa8,0xfe,0xa9,0xfe,0xc9,0xfe, 0xff,0xff,0x5a,0xf7,0x0b,0xe6,0xca,0xfe,0xa8,0xfe,0xa9,0xfe,0xc9,0xfe,0xc9,0xfe, 0xff,0xff,0x52,0xe6,0x89,0xf6,0xe8,0xfe,0xc9,0xfe,0xa9,0xfe,0xa9,0xfe,0x88,0xfe, 0x9d,0xf7,0xeb,0xe5,0x87,0xfe,0xc7,0xfe,0xc8,0xfe,0xa8,0xfe,0xe8,0xfe,0x45,0xd5, 0x19,0xef,0x86,0xe5,0x87,0xfe,0x67,0xfe,0x87,0xfe,0x87,0xfe,0xa7,0xfe,0xe3,0xb3, 0xd7,0xee,0xc5,0xe5,0x87,0xfe,0x67,0xfe,0x67,0xfe,0x67,0xfe,0x87,0xfe,0x66,0xbc, 0x95,0xe6,0xe5,0xed,0x87,0xfe,0x67,0xfe,0x67,0xfe,0x47,0xfe,0x26,0xfe,0x2b,0xf6, 0xb6,0xee,0xa5,0xed,0x67,0xfe,0x67,0xfe,0x27,0xfe,0x26,0xfe,0x26,0xfe,0x26,0xfe, 0xf8,0xee,0x85,0xe5,0x46,0xfe,0x27,0xfe,0x26,0xfe,0x25,0xfe,0xe5,0xf5,0xe6,0xf5, 0x5b,0xf7,0x87,0xe5,0x26,0xfe,0x26,0xfe,0x26,0xfe,0x45,0xdd,0xe6,0xd4,0xe6,0xfd, 0xff,0xff,0xcd,0xdd,0xe5,0xf5,0x26,0xfe,0xe5,0xf5,0x07,0xcd,0x49,0xdd,0xe5,0xd4, 0xff,0xff,0x95,0xe6,0x86,0xe5,0x06,0xfe,0xe6,0xfd,0xa8,0xed,0xe7,0xfd,0xa9,0xe5, 0xff,0xff,0xbe,0xff,0xac,0xdd,0xc6,0xf5,0xe6,0xfd,0xc6,0xfd,0x85,0xfd,0xc5,0xfd, 0xff,0xff,0xff,0xff,0x19,0xef,0x47,0xdd,0xc6,0xfd,0xa5,0xfd,0x64,0xf5,0x65,0xf5, 0xff,0xff,0xff,0xff,0xff,0xff,0xb5,0xe6,0x26,0xd5,0xc7,0xf5,0x85,0xfd,0x44,0xf5, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xb6,0xe6,0x49,0xdd,0x87,0xf5,0xa7,0xfd, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5a,0xf7,0xce,0xdd,0x27,0xdd, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x19,0xef, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, void draw_lines(void) for (i=0; i<1000; i++) { void draw_circles(void) // draw unfilled circles void setup() { // OLED_HVEN_1; //+12V on Fill_RAM(0x00,0x00); Fill_Block(0, 127, 0, 1, 0, 15); /* write a horizontal blue line at the top / } // do put code in loop func |
128x128 display
ebay: www.ebay.com/itm/5V-Ready-SPI-1-5-Full-Color-OLED-Module-for-Arduino-AVR-PIC-STM-ARM-PI-/141641587471
http://oled.jimdo.com/2014/02/21/ug-2828gdeaf02-oled-module-for-arduino/
Display: UG-2828GDEAF02-Univision
Arduino-UG282802.rar
Open topics
The color problem edges seems to be a display issue. Writing a color with none zero blue component to the last line, will show something on the first line if this is also blue (probably some bits in the red component are set).
Attached a picture to this issue (see below).
The text was updated successfully, but these errors were encountered: