Forum: Mikrocontroller und Digitale Elektronik pic32 mmb Grafiklibrary Schriftgrösse


von Frank P. (Firma: student) (f_p_aus_k)


Lesenswert?

Guten Tag,
Ich habe mir ein Multimediaboard mit eine PIC32 von der Firma 
Mikroelektronika gekauft (PIC32mmi) und versuche gerade an den 
Schriftarten und gössen zu verstehen. Es gibt ein Demoprogramm, indem 
Schriftarten über der Grafiklibrary programmiert sind (GOLFont), diese 
scheinen aber nicht zu funktionieren. Entweder gibt es keine Änderung 
oder die Schrift bleibt gleich.
Schön wäre es wenn die Textbox aus der Library verschiedene 
Schriftgrössen annehmen kann.
Weis jemand wie das geht?
Könnte mir jemand ggf ein kleines Beipielprogramm schreiben.
Ich nutze die MBLAB und die von MC mitgelieferte GraficLibrary
Ich komme nämlich gerade kein Stück weiter und muss mit dem Programm im 
Dezember fertig werden.
Vielen Dank
Frank

von Andreas G. (beastyk)


Lesenswert?

Moin Frank,

poste doch mal bitte einen Link zu der Mikroelektronika Seite wo man 
auch mal dein Board sehen kann.
Es wäre bestimmt von Vorteil wenn du deinen bisher geschriebenen Code 
auch hier rein postest! Sonst weiß keiner ob du vielleicht nur die 
Library falsch eingebunden hast, or whatever...

gruß
andi

von F_P_aus_K (Gast)


Lesenswert?

Hallo,

Das ist er Link zum Board:
[[http://www.mikroe.com/eng/products/view/318/pic32mx4-multimedia-board/]]

und probiere gerade mit diese Codeschnipseln rum:
1
static const XCHAR text1[] = "Test 1";
2
static const XCHAR text2[] = {'T','E','S','T','2',0};
3
extern const FONT_FLASH GOLMediumFont;
4
void StartScreen(void)
5
{
6
  #define SS_ORIGIN_X    ((GetMaxX()-316+1)/2)
7
  #define SS_ORIGIN_Y    ((GetMaxY()-140+1)/2)
8
9
  /*
10
    SetColor(BLACK); 
11
    ClearDevice();      
12
  SetColor(BRIGHTRED);
13
    SetFont((void*)&FONTDEFAULT);
14
*/
15
  SHORT textHeight;
16
  SetColor(BLACK); 
17
    ClearDevice();      
18
  SetColor(BRIGHTRED);
19
   SetFont((void*)&FONTDEFAULT);
20
    textHeight = GetTextHeight((void*)&GOLMediumFont);
21
  WAIT_UNTIL_FINISH(OutTextXY(0,0*textHeight, (XCHAR*)text1)); // Text 1
22
23
    MoveTo((GetMaxX()-GetTextWidth((XCHAR*)text2,(void*)&FONTDEFAULT))>>1,SS_ORIGIN_Y+122); // Text positionieren
24
    WAIT_UNTIL_FINISH(OutText((XCHAR*)text2)); // Text 2
25
}

Ich würde gern die Schriftgrösse ändern, es ist aber egal welcher Wert 
in textHeight geschrieben wird, die Höhe ändert sich nicht. Auch die 
Änderung in der Fontstructur zeigt nicht die gewünschte Wirkung.
1
extern const char L11903[] __attribute__((aligned(2)));
2
//FONT NAME CAN BE CHANGED HERE.
3
const FONT_FLASH    GOLFontDefault = {0,L11903};
4
//const struct{short mem; const char* ptr;} GOLFontDefault = {0,L11903};
5
const char L11903[] __attribute__((aligned(2))) = {
6
0x00,0x00,0x1C,0x00,0x7F,0x00,0x1c,0x00,0x0F,0x98,0x01,0x00,0x0F,0xD0,0x01,0x00,0x0F,0x08,0x02,0x00,0x0F,0x40,0x02,0x00,0x05,0x78,0x02,0x00,0x07,0x94,0x02,0x00,0x0A,
7
0xB0,0x02,0x00,0x0B,0xE8,0x02,0x00,0x0B,0x20,0x03,0x00,0x11,0x58,0x03,0x00,0x10,0xAC,0x03,0x00,0x06,0xE4,0x03,0x00,0x08,0x00,0x04,0x00,0x08,0x1C,0x04,0x00,0x0B,0x38,
8
0x04,0x00,0x0A,0x70,0x04,0x00,0x06,0xA8,0x04,0x00,0x08,0xC4,0x04,0x00,0x06,0xE0,0x04,0x00,0x0B,0xFC,0x04,0x00,0x0B,0x34,0x05,0x00,0x0B,0x6C,0x05,0x00,0x0C,0xA4,0x05,
9
0x00,0x0B,0xDC,0x05,0x00,0x0C,0x14,0x06,0x00,0x0B,0x4C,0x06,0x00,0x0B,0x84,0x06,0x00,0x0B,0xBC,0x06,0x00,0x0C,0xF4,0x06,0x00,0x0B,0x2C,0x07,0x00,0x06,0x64,0x07,0x00,
10
0x06,0x80,0x07,0x00,0x0B,0x9C,0x07,0x00,0x0B,

Laut Doku ist das 8te Word das für die Fonthöhe.

Kann mir da jemand helfen. Irgendwie muss das doch gehen.

vielen Dank
Frank

von Frank P. (Firma: student) (f_p_aus_k)


Lesenswert?

Hallo, ich habe diesen Beitrag versehentlich als Gast geschrieben. 
Sorry.
Frank

von Manuel (Gast)


Lesenswert?

Hallo

Die Fontstruktur muss pro Textgrössen neu erstellt werden dafür hat 
Microchip ein Tool: Zu finden unter:
..\pic32mx4_mmb_examples_v200\MMB32 
Examples\Microchip\Graphics\Utilities\Graphics Resource Converter

Mit diesen Converter die gewünschte Textgrösse generieren und in deinen 
Code einfügen

Gruss Manuel

von Frank P. (Firma: student) (f_p_aus_k)


Lesenswert?

Vielen Dank Manuel, hat funktioniert!!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.