void oled_ClearScreen(void){ unsigned char x,y; for(y=0;y<12;y++) { oled_SetXY(0,y); for(x=0;x<128;x++) { oled_WriteData(0x00); oled_WriteData(0x00); } } }
void oled_test(uint8_t fd) { uint8_t i, s; s = 'a' - 32; oled_SetPos(fd, 0, 1); for(i = 0; i < 8; i++) { oled_WriteData(fd, STR8X16[s][i]); } oled_SetPos(fd, 0, 0); for(i = 8; i < 16; i++) { oled_WriteData(fd, STR8X16[s][i]); } }
void oled_DisChar(uint8_t fd, uint8_t x, uint8_t y, uint8_t c, FONT_SIZE size) { uint8_t i, s; oled_SetPos(fd, x, y); s = c - 32; if(size == Big) { for(i = 0; i < 16; i++) { oled_WriteData(fd, STR16X16[s][i]); //字母的上半部分 } y--; oled_SetPos(fd, x, y); for(i = 16; i < 32; i++) //字母的下半部分 { oled_WriteData(fd, STR16X16[s][i]); } } else if(size == Mid) { for(i = 0; i < 8; i++) { oled_WriteData(fd, STR8X16[s][i]); //字母的上半部分 } y--; oled_SetPos(fd, x, y); for(i = 8; i < 16; i++) //字母的下半部分 { oled_WriteData(fd, STR8X16[s][i]); } } else if(size == Small) { for(i = 0; i < 6; i++) { oled_WriteData(fd, STR6X8[s][i]); } } }
void oled_Clear(uint8_t fd) { uint8_t page, column; for(page = 0; page < 8; page++) { oled_SetPos(fd, 0, page); for(column = 0; column < 128; column++) { oled_WriteData(fd, 0); } } }
void oled_WriteASSIC(uchar X, uchar Y, char *s, char inversion) { unsigned char i; unsigned char j = 0; while (*s != 0) { oled_SetXY((X + (j * 6)), Y); for (i = 0; i < 6; i++) { if(inversion == 0) oled_WriteData(assic_6x8[(*s - 32)][i]); else oled_WriteData_inversion(assic_6x8[(*s - 32)][i]); } s++; j++; } }
void oled_DisplayUnsignedNum(uchar x, uchar y, char close, int num, int length, char inversion) { int i, j; uchar len; int tmp, tmp2; len = GetLength(num); tmp = length - len; if(close == oled_closeLeft) { oled_WriteASSIC((x + (6 * len)), y ,space[tmp],oled_uninversion); } else { oled_WriteASSIC((x - (6 * length)), y ,space[tmp],oled_uninversion); } //set start place oled_SetXY(x - (close * (6 * len)), y); tmp2 = 10000; for (i = 0; i < (5 - len); i++) tmp2 /= 10; for (i = 0; i < len; i++) { tmp = (num / tmp2) % 10; for (j = 0; j < 6; j++) { if (inversion == 0) oled_WriteData(assic_6x8[tmp + 16][j]); else oled_WriteData_inversion(assic_6x8[tmp + 16][j]); } tmp2 /= 10; } }