Exemple #1
0
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();
}
Exemple #3
0
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();
}