Посмотри, где у тебя происходит растеризация при печати символа. На стороне мк или стороне моника? Есть вариант, хоть и маловероятный, что ты шрифт вгружаешь в рам моника до начала печати, а потом уже дергаешь посимвольно из рамы моника.
Посмотри, где у тебя происходит растеризация при печати символа. На стороне мк или стороне моника? Есть вариант, хоть и маловероятный, что ты шрифт вгружаешь в рам моника до начала печати, а потом уже дергаешь посимвольно из рамы моника.
Всем привет. Рено Меган один. 2002 год, 1,6. Нет искры, нет сигнала на топливный насос. Датчик колена по сопротивлению в... Читать далее
Здравствуйте, принесли два мака A1502 перекинуть с донора матрицу. После замены, мак включается (есть гонг), есть изо, но... Читать далее
Объясню в запенке на обогрев стоит металл,вопрос почему он ржавеет??? Вопрос задай себе Там собираются При не правильной... Читать далее
Здравствуйте! Подскажите пожалуйста кто-нибудь знает или сталкивался с такой проблемой: Отклеился дисплей у телефона Honor... Читать далее
Доброго времени суток. Имеем кеосеру м2035, на листах остаются горизонтальные светлые полосы, всегда в верхней части листа,... Читать далее
Владельцы 808 тбк ещё существуют? Достал старичка, решил проверить, при проверке как обычно замки закрылись, процедура закончилась... Читать далее
Комментарии: 15
W1ruus
Сек... Вот часть файла font.h __FONT_H __FONT_H const unsigned char asc2_1206[95][12]={ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/ {0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x04,0x00,0x00},/*"!",1*/ {0x00,0x14,0x0A,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*""",2*/ {0x00,0x00,0x14,0x14,0x3F,0x14,0x0A,0x3F,0x0A,0x0A,0x00,0x00},/*"#",3*/ {0x00,0x04,0x1E,0x15,0x05,0x06,0x0C,0x14,0x15,0x0F,0x04,0x00},/*"$",4*/ Вставляя сюда код с других "шрифтов" я максимум что добился это утолщения букв шрифта, но в большинстве случаев отображались кракозябры... Естественно размер шрифта я соблюдал... В gui.h есть строчки - void lcd_showstring(uint16_t x, uint16_t y, uint8_t size, uint8_t *p, uint8_t mode); void gui_drawfont16(uint16_t x, uint16_t y, uint16_t fc, uint16_t bc, uint8_t *s, uint8_t mode); void gui_drawfont24(uint16_t x, uint16_t y, uint16_t fc, uint16_t bc, uint8_t *s, uint8_t mode); void gui_drawfont32(uint16_t x, uint16_t y, uint16_t fc, uint16_t bc, uint8_t *s, uint8_t mode); Они отвечают я так понимаю за отрисовку шрифта, ссылаясь на gui.c /***************************************************************************** * void lcd_showchar(uint16_t x, uint16_t y, uint16_t fc, uint16_t bc, uint8_t num, uint8_t size, uint8_t mode) * отображает один символ латинского/английского языка * "x"/"y" - начальная координата положения отображение символа по горизонтали/вертикали * "fc"/"bc" - цвет символа/цвет фона * "num" - ascii код отображаемого символа (0~94) * "size" - размер отображаемого символа * "mode" - 0/1 - без перекрытия/с перекрытием ******************************************************************************/ void lcd_showchar(uint16_t x, uint16_t y, uint16_t fc, uint16_t bc, uint8_t num, uint8_t size, uint8_t mode) { uint8_t temp; uint8_t pos,t; uint16_t colortemp = POINT_COLOR; num = num - ' '; lcd_setwindows(x, y, x + size / 2 - 1, y + size - 1); if(!mode) { for(pos = 0; pos < size; pos++) { if(size == 12)temp = asc2_1206[num][pos]; else temp = asc2_1608[num][pos]; for(t = 0; t < size / 2; t++) { if(temp & 0x01)lcd_writedata_16bit(fc); else lcd_writedata_16bit(bc); temp >>= 1; } } } else { for(pos = 0; pos < size; pos++) { if(size == 12)temp = asc2_1206[num][pos]; else temp = asc2_1608[num][pos]; for(t = 0; t < size / 2; t++) { POINT_COLOR = fc; if(temp & 0x01)lcd_drawpoint(x + t, y + pos); temp >>= 1; } } } POINT_COLOR = colortemp; lcd_setwindows(0, 0, lcddev.width - 1, lcddev.height - 1); } То есть, добавив сторонний шрифт в файл fonts.h, внеся в гуи информацию можно отобразить любой шрифт... Так ?
Anonim
Про пастебин человек видимо не слышал... Бывает
Serge
Нет. Посмотри в инициализации экрана, похоже, там таблицу шрифтов перед началом работы отправляют в рам монитора. Я правильно понимаю, что управление по spi?
W1ruus
Не, ФСМС 16бит Ага, то есть при инициализации дисплея отправляется таблица символов, а потом при команде идёт отрисовка ? В общем, если интересна данная тема и готов помочь с разъяснениями, я готов оплатить твоё время, если конечно в цене договоримся )))
Serge
Похоже на то. Что у тебя в LCD_writedata и как это соотносится с главой 6 даташита?