Autor Tema: tamaños letra hy-mini stm32  (Leído 2806 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado alexrlopez86

  • PIC10
  • *
  • Mensajes: 25
tamaños letra hy-mini stm32
« en: 08 de Agosto de 2013, 17:54:28 »
hola a todos estoy usando la pantalla de la placa hy-mini stm32 con el driver de anilandro y queria mostrar letras mas grandes e probado el programa "glcd fon creator" y trato de usar las letras generadas pero me pierdo a la ora de modificar las funciones encargadas de mostrar los caracteres

pongo un ejemplo

letra 23x33:
        0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char cuadro blanco 
        0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x3F, 0x07, 0x00, 0x80, 0xFF, 0x3F, 0x07, 0x00, 0x80, 0xFF, 0x3F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char !


funciones implicadas:
GUI_Text(30,30,"T",Blue,Red); //en el main


/******************************************************************************
* Function Name  : GUI_Text
* Modified by    : Anilandro
* Description    :
* Input          : - Xpos, Ypos, str, charColor, bkColor:
*******************************************************************************/
void GUI_Text(uint16_t Xpos, uint16_t Ypos, uint8_t *str, uint16_t Color, uint16_t bkColor)
{
   uint8_t TempChar;
   
 do
  {
    TempChar=*str++; 
    PutChar(Xpos,Ypos,TempChar,Color,bkColor);   
      if(PMode==0x01)
      {
        if (Xpos<232)
          {
         Xpos=Xpos+12;
          }
       else if (Ypos<287)
          {   
         Xpos=0;
         Ypos=Ypos+24;
          }   
          else
          {
         Xpos=0;
         Ypos=0;
          }   
      }
      if(PMode==0)
      {
        if (Xpos<311)
            {
            Xpos=Xpos+12;
          }
       else if   (Ypos<208)
            {
            Ypos=Ypos+24;
            Xpos=0;
            }
         else
          {
         Xpos=0;
         Ypos=0;
            }             
      }   
   }
  while (*str!=0);
}

#endif
#if HZ_LIB > 0
#endif

 

/******************************************************************************
* Function Name  : PutChar
* Description    :
* Input          : Xpos, Ypos, c, charColor, bkColor
*******************************************************************************/
void PutChar(unsigned short Xpos,unsigned short Ypos,unsigned char c,unsigned short charColor,unsigned short bkColor)
{
  unsigned short i=0;
  unsigned short j=0;
  unsigned char buffer[24];
  unsigned char tmp_char=0;
       
   GetASCIICode(buffer,c);
  for (i=0;i<8;i++)
  {
    tmp_char=buffer;
    for (j=0;j<16;j++)
    {
      if ( (tmp_char >> 7-j) & 0x01 == 0x01)
        {
          LCD_SetPoint(Xpos+j,Ypos+i,charColor); 
        }
        else
        {
          LCD_SetPoint(Xpos+j,Ypos+i,bkColor); 
        }
    }
  }
}



void GetASCIICode(unsigned char* pBuffer,unsigned char ASCII)

   memcpy(pBuffer,AsciiLib[(ASCII - 32)] ,24);
}


espero su ayuda

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: tamaños letra hy-mini stm32
« Respuesta #1 en: 11 de Agosto de 2013, 08:38:22 »


Los fonts se guardan en arrays, si quieres crear un nuevo font, tendrías que utilizar alguna utilidad que convierta el texto o imágenes a un array con el formato RGB565 de 18bits. Yo para convertir imágenes estoy usando ImageConvert, supongo que habrán utilidades para crear o convertir fonts, eso aún no lo he probado.

En cuanto al código fuente, yo estoy utilizando otro, pero en esencia es lo mismo, debes de tener una función para seleccionar el tipo de font, y otra para sacar el texto, por ejemplo en el programa que yo estoy utilzando es así:

  Clear_Screen(0x0000); // borra pantalla
  Set_Font(&Font16x24);  // selecciona font
  Display_String(107, 255, "Lineas al Azar", LCD_WHITE); // visualiza texto en x,y, color blanco


Debes de tener algún achivo del tipo fonts.c y fonts.h, donde se recogern los arrays para cada font, y las funciones relacionadas.


 
« Última modificación: 11 de Agosto de 2013, 08:43:34 por planeta9999 »


 

anything