Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 19.07.2016, 10:41  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: ili9341 SPI

А в какой кодировке у вас представлен шрифт? В любом случае, его можно перекодировать.
Вообще, для unsigned char кодировка ASCII, в которой кириллица начинается со 192 ('А'). 'Б' - 193 ... 'Я' - 223. 'а' - 224, 'б' - 225 ... 'я' - 255.
таблица кодировки:
Нажмите, чтобы открыть спойлер


Именно поэтому на алфавитно-цифровых дисплеях с контроллером типа HD44780 невозможно напрямую выводить текст кириллицей. Перекодировать программно не имеет смысла, поэтому для набора текста пользуюсь конвертерами.
Реклама:

Последний раз редактировалось NewWriter; 19.07.2016 в 10:54.
NewWriter вне форума  
Непрочитано 19.07.2016, 12:05  
dimdidim
Частый гость
 
Регистрация: 13.06.2016
Сообщений: 37
Сказал спасибо: 6
Сказали Спасибо 2 раз(а) в 1 сообщении
dimdidim на пути к лучшему
По умолчанию Re: ili9341 SPI

Латиница в ASCII, а вот кириллицу приладить никак нормально не могу, я ее пихал и под коды со 192 и со 128 (по таблицам кодировки, которые рожал гугл), но внятно не работает. Вместо строки "Привет" пишет ""П!иве!" - часть символов просто неправильно определяется под какие бы коды не пихать алфавит (в данном случае восклицательные знаки показывают, что коды символов за пределами кодов алфавита) - где-то больше, где-то меньше ошибок, с латиницей при этом все хорошо. И при записи FONT_OUT('т', 130, 205, 2, 0xFFFF, 0x05BF); выдает варнинг character too large for enclosing character literal type
dimdidim вне форума  
Непрочитано 19.07.2016, 12:42  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: ili9341 SPI

Проблему надо искать в самой функции FONT_OUT
NewWriter вне форума  
Непрочитано 19.07.2016, 13:08  
dimdidim
Частый гость
 
Регистрация: 13.06.2016
Сообщений: 37
Сказал спасибо: 6
Сказали Спасибо 2 раз(а) в 1 сообщении
dimdidim на пути к лучшему
По умолчанию Re: ili9341 SPI

Нажмите, чтобы открыть спойлер

void FONT_OUT(unsigned char ascii, unsigned int x0, unsigned int y0, unsigned int size, unsigned int fgcolor, unsigned int bgcolor)
{

unsigned int n, i, j, h, k;
i = fgcolor ›› 8;
j = fgcolor & 0xFF;
h = bgcolor ›› 8;
k = bgcolor & 0xFF;
int INDEX = 0;

LCD_SetCursorPosition(x0, y0, (uint16_t) (x0+23), (uint16_t) (y0+22));

LCD_SendCommand(LCD_GRAM);
HAL_GPIO_WritePin(TFT_DC_PORT, TFT_DC_PIN, GPIO_PIN_SET);
HAL_GPIO_WritePin(TFT_CS_PORT, TFT_CS_PIN, GPIO_PIN_RESET);

for (n =0; n‹69; n++ )

{
//unsigned char temp = dSDigital_72ptBitmaps[((ascii-4*305)+n]; //
unsigned char temp = arialNarrow_18ptBitmaps[arialNarrow_18ptDescriptors[ascii-33][2]+n]; // отнимаем количество первых символов, не присутствующих в шрифте
unsigned char f=0;
for(f=0;f‹8;f++)
{

if((temp››f)&0x01)

{buf[INDEX] = i;
buf[INDEX+=1] = j;
INDEX+=1;}

else {buf[INDEX] = h;
buf[INDEX+=1] = k;
INDEX+=1;}
}
}
HAL_SPI_Transmit_DMA(&hspi1, buf, 1104);


HAL_GPIO_WritePin(TFT_CS_PORT, TFT_CS_PIN, GPIO_PIN_SET);
}

функция под конкретный шрифт пока с моно шириной - выбираем область расположения шрифта (квадрат), определяем область массива шрифта с необходимым символом (расположение соответствует коду символа с поправкой на отсутствующие символы в начале), перегоняем в буфер и пихаем в DMA, заполняется область квадрата символом. Шрифт содержит сам массив с буквами и массив с информацией о них. Генерил шрифты прогой Dot Factory.
Я не сильно догоняю как определить в какой кодировке определяются символы, но что-то мне подсказывает, что UTF-8 используется (в keil установлена такая кодировка)
но даже просто приравняв
unsigned int yyy = 'Б'
дает ошибку character too large for enclosing character literal type

проблема то по сути именно в том как получить коды из русских знаков (как понял, это проблема самого keil'а)

крякнул keil Rus_font_dll и все нормально заработало

Последний раз редактировалось dimdidim; 20.07.2016 в 14:24.
dimdidim вне форума  
Непрочитано 01.12.2018, 20:43  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: ili9341 SPI

Добрый день. Подключил 9341 по SPI. 320х240 точек. Заливает цветом примерно за 1-1,5 сек. Это нормальная скорость? Почитал форумы. Шлют команду записи в память и потом шлют цвет по 8 бит в цикле. У меня так шлет в одну точку всё. Надо только вручную увеличивать координаты и рисовать точку. Всё аналогично как с SSD1306. Подскажите правильно ли это?
miwutka вне форума  
Непрочитано 01.12.2018, 20:52  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: ili9341 SPI

блин заколдованный форум... ))) Сижу разбираюсь, не получается... Только напишу вопрос так сразу получается. Нашел ошибку у себя при задании границ вывода. Тупо нули стояли... Сам провтыкал...
miwutka вне форума  
Непрочитано 01.12.2018, 21:05  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: ili9341 SPI

Сообщение от miwutka Посмотреть сообщение
Заливает цветом примерно за 1-1,5 сек. Это нормальная скорость?
Нет, это не нормальная. Скорость можно увеличить в десятки раз. Т Делается это через DMA.
Количество байт для полного кадра 240х320х3 байта цвета = 230400. При SPI 18 МГц кадр заполнится за 10 мс.
Почитайте первую страницу этой темы.

ЗЫ. Наиболее выгодно этот дисплей будет работать в режиме параллельного ввода.
NewWriter вне форума  
Сказали "Спасибо" NewWriter
miwutka (01.12.2018)
Непрочитано 01.12.2018, 21:17  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: ili9341 SPI

Пока без ДМА за 1 секунду заливает 7-8 раз дисплей цветом.... Проц stm32f030F4t6 - 64 МГц тактирование. SPI получается 32 МГц. Цвет у меня из двух 8 битных значений. Сейчас сяду сделаю вывод текста хоть...
miwutka вне форума  
Непрочитано 02.12.2018, 11:51  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: ili9341 SPI

Фигасе, чеж так издеваться то с частотами...
Для вывода шрифта на мелком МК нужен другой подход. Вывод - в окне размером в один символ шрифта. Устанавливаем координаты окна дисплея, передавая команды. Затем начинаем заполнять это окно попиксельно. Для следующего символа - повторить - установка координат окна, заполнение окна.
NewWriter вне форума  
Сказали "Спасибо" NewWriter
miwutka (02.12.2018)
Непрочитано 02.12.2018, 12:20  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: ili9341 SPI

Мой драйвер для этого дисплея
https://bitbucket.org/Virviglaz/myli...mmon/ILI9341.c
https://bitbucket.org/Virviglaz/myli...mmon/ILI9341.h
и шрифт:
https://bitbucket.org/Virviglaz/myli...ont8x8_basic.h
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
miwutka (02.12.2018)
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
Кто-нибудь работал с RF модулями nRF2401A? Easyrider83 Автоматика и аппаратура связи 1481 04.09.2021 23:24
Atmega16 - много переферийных устройств SPI pavned AVR 21 23.01.2013 07:00
Работа с EEPROM по SPI dominik2 Микроконтроллеры, АЦП, память и т.д 15 05.05.2012 00:24
Помогите с ЦАП AD7708/AD7718 или их аналогами ST_Senya Микроконтроллеры, АЦП, память и т.д 9 30.11.2009 19:03


Часовой пояс GMT +4, время: 19:26.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot