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
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
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
Hallo, ich habe diesen Beitrag versehentlich als Gast geschrieben. Sorry. Frank
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.