Tengo una matriz de puntos de 132x65 LCD. Estoy utilizando el controlador STM32f303 en mi aplicación. Tuve éxito en mostrar las fuentes normales de 5x7 en LCD. Ahora, lo que quiero hacer es mostrar las fuentes de tamaño personalizado 13x16 en la pantalla LCD. Generé el código hexadecimal apropiado para todos los 95 caracteres para el tamaño de 13x16. En 5x7 pude enviar todos los bytes usando la siguiente rutina.
void Display(uint8_t Display_Row, uint8_t Display_Column, unsigned char)
{
uint16_t String_Pointer_Offset;
String_Pointer_Offset = 0;
while( 'void Display(uint8_t Display_Row, uint8_t Display_Column, unsigned char)
{
uint16_t String_Pointer_Offset;
String_Pointer_Offset = 0;
while( '%pre%' != *(String_Pointer + String_Pointer_Offset) )
{
#if (defined(DISPLAY_WRAP_TEXT_STRINGS) && (DISPLAY_WRAP_TEXT_STRINGS == YEP ))
if(Display_Column > SHADOW_LAST_COLUMN) /* Check if it's the appropriate to wrap the row printing the exceeding character on the next line. */
{
Display_Column = 0;
Display_Row ++;
};
if (Display_Row > SHADOW_LAST_LINE)
{
return; /* Ran out of space :( */
};
#else /* if (not defined(DISPLAY_WRAP_TEXT_STRINGS) || (DISPLAY_WRAP_TEXT_STRINGS == NOPE )) */
if( (Display_Column > SHADOW_LAST_COLUMN)
|| (Display_Row > SHADOW_LAST_LINE ) )
{
return; /* Ran out of space :( */
};
#endif
Display.Row[Display_Row].Column [Display_Column] = *(String_Pointer + String_Pointer_Offset);
Display.Row[Display_Row].Touched[Display_Column] = TRUE;
Display_Column ++;
String_Pointer_Offset++;
};
return;
}
' != *(String_Pointer + String_Pointer_Offset) )
{
#if (defined(DISPLAY_WRAP_TEXT_STRINGS) && (DISPLAY_WRAP_TEXT_STRINGS == YEP ))
if(Display_Column > SHADOW_LAST_COLUMN) /* Check if it's the appropriate to wrap the row printing the exceeding character on the next line. */
{
Display_Column = 0;
Display_Row ++;
};
if (Display_Row > SHADOW_LAST_LINE)
{
return; /* Ran out of space :( */
};
#else /* if (not defined(DISPLAY_WRAP_TEXT_STRINGS) || (DISPLAY_WRAP_TEXT_STRINGS == NOPE )) */
if( (Display_Column > SHADOW_LAST_COLUMN)
|| (Display_Row > SHADOW_LAST_LINE ) )
{
return; /* Ran out of space :( */
};
#endif
Display.Row[Display_Row].Column [Display_Column] = *(String_Pointer + String_Pointer_Offset);
Display.Row[Display_Row].Touched[Display_Column] = TRUE;
Display_Column ++;
String_Pointer_Offset++;
};
return;
}
Y al usar la función Display_Print(1,1,"ABC %code%");
en el archivo principal, pude mostrar la cadena en mi LCD.
Pero aquí hay un número de bytes 26 en lugar de 8, por lo que no se pueden enviar simultáneamente en una pantalla LCD de interfaz paralela. ¿Puede alguien ayudarme a lograr esta gran tarea de visualización de fuentes de 13x16 píxeles?