void UTFT::clrScr() { long i; cbi(P_CS, B_CS); clrXY(); if (display_transfer_mode!=1) sbi(P_RS, B_RS); if (display_transfer_mode==16) _fast_fill_16(0,0,((disp_x_size+1)*(disp_y_size+1))); else if (display_transfer_mode==8) _fast_fill_8(0,((disp_x_size+1)*(disp_y_size+1))); else { for (i=0; i<((disp_x_size+1)*(disp_y_size+1)); i++) { if (display_transfer_mode!=1) LCD_Writ_Bus(0,0,display_transfer_mode); else { LCD_Writ_Bus(1,0,display_transfer_mode); LCD_Writ_Bus(1,0,display_transfer_mode); } } } sbi(P_CS, B_CS); }
void ILI9325i2c_16::printChar(byte c, int x, int y) { byte i, ch; word j; word temp; clearBit(CS); if (orient == PORTRAIT) { setXY(x, y, x + cfont.x_size - 1, y + cfont.y_size - 1); temp = ((c - cfont.offset) * ((cfont.x_size / 8) * cfont.y_size)) + 4; for (j = 0; j < ((cfont.x_size / 8)*cfont.y_size); j++) { ch = pgm_read_byte(&cfont.font[temp]); for (i = 0; i < 8; i++) { if ((ch & (1 << (7 - i))) != 0) { setPixel(fcolorr, fcolorg, fcolorb); } else { setPixel(bcolorr, bcolorg, bcolorb); } } temp++; } } else { temp = ((c - cfont.offset) * ((cfont.x_size / 8) * cfont.y_size)) + 4; for (j = 0; j < ((cfont.x_size / 8)*cfont.y_size); j += (cfont.x_size / 8)) { setXY(x, y + (j / (cfont.x_size / 8)), x + cfont.x_size - 1, y + (j / (cfont.x_size / 8))); for (int zz = (cfont.x_size / 8) - 1; zz >= 0; zz--) { ch = pgm_read_byte(&cfont.font[temp + zz]); for (i = 0; i < 8; i++) { if ((ch & (1 << i)) != 0) { setPixel(fcolorr, fcolorg, fcolorb); } else { setPixel(bcolorr, bcolorg, bcolorb); } } } temp += (cfont.x_size / 8); } } setBit(CS); clrXY(); }
void UTFT::drawCircle(int x, int y, int radius) { int f = 1 - radius; int ddF_x = 1; int ddF_y = -2 * radius; int x1 = 0; int y1 = radius; cbi(P_CS, B_CS); setXY(x, y + radius, x, y + radius); LCD_Write_DATA(fch,fcl); setXY(x, y - radius, x, y - radius); LCD_Write_DATA(fch,fcl); setXY(x + radius, y, x + radius, y); LCD_Write_DATA(fch,fcl); setXY(x - radius, y, x - radius, y); LCD_Write_DATA(fch,fcl); while(x1 < y1) { if(f >= 0) { y1--; ddF_y += 2; f += ddF_y; } x1++; ddF_x += 2; f += ddF_x; setXY(x + x1, y + y1, x + x1, y + y1); LCD_Write_DATA(fch,fcl); setXY(x - x1, y + y1, x - x1, y + y1); LCD_Write_DATA(fch,fcl); setXY(x + x1, y - y1, x + x1, y - y1); LCD_Write_DATA(fch,fcl); setXY(x - x1, y - y1, x - x1, y - y1); LCD_Write_DATA(fch,fcl); setXY(x + y1, y + x1, x + y1, y + x1); LCD_Write_DATA(fch,fcl); setXY(x - y1, y + x1, x - y1, y + x1); LCD_Write_DATA(fch,fcl); setXY(x + y1, y - x1, x + y1, y - x1); LCD_Write_DATA(fch,fcl); setXY(x - y1, y - x1, x - y1, y - x1); LCD_Write_DATA(fch,fcl); } sbi(P_CS, B_CS); clrXY(); }
void ILI9325i2c_16::rotateChar(byte c, int x, int y, int pos, int deg) { byte i, j, ch; word temp; int newx, newy; double radian; radian = deg * 0.0175; clearBit(CS); temp = ((c - cfont.offset) * ((cfont.x_size / 8) * cfont.y_size)) + 4; for (j = 0; j < cfont.y_size; j++) { for (int zz = 0; zz < (cfont.x_size / 8); zz++) { ch = pgm_read_byte(&cfont.font[temp + zz]); for (i = 0; i < 8; i++) { newx = x + (((i + (zz * 8) + (pos * cfont.x_size)) * cos(radian)) - ((j) * sin(radian))); newy = y + (((j) * cos(radian)) + ((i + (zz * 8) + (pos * cfont.x_size)) * sin(radian))); setXY(newx, newy, newx + 1, newy + 1); if ((ch & (1 << (7 - i))) != 0) { setPixel(fcolorr, fcolorg, fcolorb); } else { setPixel(bcolorr, bcolorg, bcolorb); } } } temp += (cfont.x_size / 8); } setBit(CS); clrXY(); }