Например TDA7294

Форум РадиоКот • Просмотр темы - Вывод текста ILI9341
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 23, 2024 11:33:27

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Вывод текста ILI9341
СообщениеДобавлено: Вс июн 10, 2018 18:41:56 
Встал на лапы

Зарегистрирован: Вт июн 08, 2010 12:03:39
Сообщений: 137
Рейтинг сообщения: 0
Помогите адаптировать функцию вывода текста. В поисках решения вывода текста на дисплей. В просторах интернета нашел проект "Шрифты с GLCD Font Creator на коленке" http://we.easyelectronics.ru/lcd_gfx/sh ... lenke.html

extern const uint8_t Verdana12x12eng[];
extern const uint8_t Verdana12x12rus[];
const uint8_t* font12x12eng = &Verdana12x12eng[0];
const uint8_t* font12x12rus = &Verdana12x12rus[0];
void PutStringRus(uint8_t ix, uint8_t iy, char* iString, uint8_t iLength)
{
///Входные параметры ix, iy -- координаты верхнего левого угла, от которого начинать печатать
///iString -- указатель на содержание строки
///iLength -- длина строки с учётом "терминального ноля"
iLength--;
uint8_t xpos = ix;
for(int sym = 0; sym<iLength; ++sym)
{
uint8_t sm = iString[sym];
uint8_t snum = (sm<0xC0 ? sm-0x20 : sm-0xC0);///Так себе проверка
const uint8_t* symbol = &(sm<0xC0?font12x12eng:font12x12rus)[(1+12*2)*(snum)];
for(uint8_t x = 0; x<symbol[0]; ++x)
{
for(uint8_t y = 0; y<12; ++y)
{
if(symbol[1+y/8+x*2] & (0x01<<(y%8)))
PutPixel(xpos+x, iy+y);
else
ErasePixel(xpos+x, iy+y);
}
}
xpos += symbol[0];
}
}

Но здесь автор массив сохраняет в RAM памяти. Пытаюсь переделать, чтоб массив сохранялся в FLASH памяти.
const uint8_t Verdana12x12rus[] PROGMEM = {};
И потом считывать
pgm_read_byte_near

const uint8_t* symbol = pgm_read_byte_near(&((sm<0xC0?font12x12eng:font12x12rus)[(1+12*2)*(snum)]));

С моими знаниями в этом деле у меня не-получается.
Надеюсь на Вашу помощь

_________________
Никогда не-откладывай на завтра. То, что можно сделать сегодня.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y