2013-01-03 13 views
1

Je travaille avec Cortex M3, Conseil d'évaluation Stellaris® LM3S6965. J'essaie d'afficher du texte sur l'écran oled qui fonctionne. Mais je ne sais pas comment augmenter la taille du texte.Augmenter la taille du texte sur oled (Cortex M3, Stellaris LM3S6965)

Est-ce que quelqu'un sait comment faire cela?

Mon code actuel:

#include "inc/hw_types.h" 
#include "driverlib/debug.h" 
#include "driverlib/sysctl.h" 
#include "drivers/rit128x96x4.h" 


//***************************************************************************** 
// 
// The error routine that is called if the driver library encounters an error. 
// 
//***************************************************************************** 
#ifdef DEBUG 
void 
__error__(char *pcFilename, unsigned long ulLine) 
{ 
} 
#endif 

//***************************************************************************** 
// 
// Display scrolling text plus graphics on the OLED display. 
// 
//***************************************************************************** 
int 
main(void) 
{ 
    unsigned long ulRow, ulCol, ulWidth, ulHeight; 
    volatile int iDelay; 
    unsigned char *pucRow; 
    static char pucHello[] = 
    { 
     "      " 
     "Current selected timezone: +2 GMT - Brussels" 
     "      " 
    }; 

    // 
    // Set the clocking to run directly from the crystal. 
    // 
    SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | 
        SYSCTL_XTAL_8MHZ); 

    // 
    // Initialize the OLED display. 
    // 
    RIT128x96x4Init(1000000); 

    // Simple scrolling text display 
    // 
    ulCol = 0; 
    while(1) 
    { 
     // 
     // Display the text. 
     // 
     RIT128x96x4StringDraw(&pucHello[ulCol++], 8, 8, 11); 

     // 
     // Delay for a bit. 
     // 
     for(iDelay = 0; iDelay < 100000; iDelay++) 
     { 
     } 

     // 
     // Wrap the index back to the beginning of the string. 
     // 
     if(ulCol > 53) 
     { 
      ulCol = 0; 
     } 
    } 
} 
+2

Je suppose que vos polices sont décrites dans '" drivers/rit128x96x4.h "'. Recherchez les autres en-têtes qui se ressemblent. – leppie

Répondre

2

Il n'y a aucune garantie que vous pouvez, bien sûr.

Les systèmes embarqués n'ont généralement pas beaucoup de liberté en ce qui concerne l'utilisation des polices; La mise à l'échelle dynamique est très coûteuse et de nombreuses polices sont traitées comme des bitmaps binaires pré-rendus d'une taille spécifique.

Vous devez regarder dans l'API: s défini par l'en-tête rit128x96x4.h, car il semble que ce soit la fonctionnalité spécifique à l'affichage.

Vous ne dites pas quelle est la taille de la police que vous obtenez actuellement; sur un affichage aussi petit que 128x96, je ne m'attendrais pas à ce qu'il y ait des polices super-larges car en général il serait plus utile de fournir une petite police pour maximiser la quantité de texte que vous pouvez ajuster à l'écran.

MISE À JOUR: Si this random Google hit est précis, l'API graphique fournie n'est pas très riche et il ne semble pas possible de changer de police.

1

Les polices sont normalement juste des tableaux de bitmaps. Vous pouvez redéfinir les bitmaps pour la police que vous voulez. Si vous voulez augmenter la taille, il peut y avoir d'autres constantes que vous devez également modifier pour que les routines de dessin sachent comment espacer les caractères au fur et à mesure qu'ils sont rendus.

2

Il existe un certain nombre de polices dans le dossier grlib \ fonts sous StellarisWare. Vous pouvez changer la police en utilisant l'appel API GrContextFontSet()

Questions connexes