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

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

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

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

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

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


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

NewWriter, да, я вчера так и сделал вывод. Сейчас вот думаю как большой шрифт выводить... Я переделывал код от SSD1351(RGB 1.5").
PHP код:
void ILI9341_WriteChar(uint16_t xuint16_t ychar chFontDef_tfontuint16_t coloruint16_t bgcolor
{
    
uint32_t ibj;

    
CS_ON;
    
ILI9341_SetAddressWindow(xyx+font-›FontWidth-1y+font-›FontHeight-1);
   
SSD1351_send_command(ILI9341_GRAM);
   
wr_Data;
    for(
0‹ font-›FontHeighti++) //высота символа
        
{
        
font-›data[(ch 32) * font-›FontHeight i];
        for(
0‹ font-›FontWidthj++) //ширина символа
                
{
            if((
‹‹ j) & 0x8000)  
                        {
//                data[] = { color ›› 8, color & 0xFF };
         
                            
SPI1_SendByte(color ›› 8);
                     
SPI1_SendByte(color 0xFF);
//                SSD1351_send_data(data, sizeof(data));
            
} else 
                        {
                            
SPI1_SendByte(bgcolor ›› 8);
                     
SPI1_SendByte(bgcolor 0xFF);
//                data[] = { bgcolor ›› 8, bgcolor & 0xFF };
//                SSD1351_send_data(data, sizeof(data));
            
}
        }
    }
        
CS_OFF;
}

а это кусочек шрифтацифра 0
0x0000
0x1E000x3F000x33000x61800x61800x61800x6D800x6D800x61800x61800x61800x33000x3F000x1E000x00000x00000x0000,   // 0 
получается тут if((b ‹‹ j) & 0x8000) я проверяю выводить точку или нет, и если нет то вывожу фон. Маска 32 бита, а символы которые больше надо вывести попадают под маску 64 бита. Вот не получается додуматься как это условие заменить другим. Шрифты генерирую в программе The Dot Factory. Там она генерит по 8 бит. У Easyrider83 шрифт тоже сделан вроде через эту прогу. Но у него в примере 8 на 8 шрифт.
Сейчас чай допью и сяду думать как изменить мои условия.
Реклама:
miwutka вне форума  
Непрочитано 02.12.2018, 19:01  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: ili9341 SPI

Сделал для шрифтов выгрузку. Переделал свои функции...
Теперь дошел до того, что конечно для большого шрифта не хватает памяти )) Для этого внешнюю флешь можно использовать. Подскажите как во внешнюю флеш записать шрифт? Сторонним программатором? Или сделать платку чтоб с компа послать файл через ком-порта МК всё что принимает сразу пишет во внешнюю флешь...? Как обычно такое делают?
Ну вот у меня 16 кб флеша. Хватает для шрифта 48х79 примерно 11 символов
miwutka вне форума  
Непрочитано 02.12.2018, 19:17  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: ili9341 SPI

Keil умеет загружать во внешнюю память.
Свойства проекта -› Target -› off-chip flash: сюда добавляете регион флеши (не случайно у армов область памяти начиная с нуля не занята).
Потом идем в Debug -› Settings -› Flash Download. Здесь выбираем алгоритм для работы с этой памятью и задаете ту же область, что и в Target. Если нужного алгоритма нет в списке, придется писать самому. Я писал под SPI FLASH x25. Ничего сложного. При сборке проекта данные загружаются и в память контроллера, и во внешнюю флеш автоматически.
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
miwutka (02.12.2018)
Непрочитано 02.12.2018, 19:23  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,483
Сказал спасибо: 401
Сказали Спасибо 2,212 раз(а) в 1,311 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: ili9341 SPI

А может перестать мучить себя и МК такими извратами? Додумались - взять самый мелкий МК и прицепить к нему цветной дисплей 240х320 точек, да еще захерачить в него шрифт сразу аж 79х48 точек. Это сразу чтоб обосраться, наверно. Вы либо делайте шрифт не более 16х8, либо возьмите другой МК, хотябы на 64 кБ флеша.
Внешний флеш для F030 - ерунда. Учитывая отсутствие интерфейса NOR или NAND и маленькую ОЗУ, скорость работы будет вообще никакой.
NewWriter вне форума  
Сказали "Спасибо" NewWriter
miwutka (02.12.2018)
Непрочитано 02.12.2018, 19:53  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: ili9341 SPI

самый маленький Мк взял так как он был уже распаян на платке. Да и интересно было часы сделать на нем на весь экран. С маленьким шрифтом то всё норм, а большой не влез ))
Сейчас пойду смотреть то что Easyrider83 мне написал. Буду изучать...
miwutka вне форума  
Непрочитано 02.12.2018, 20:29  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,483
Сказал спасибо: 401
Сказали Спасибо 2,212 раз(а) в 1,311 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: ili9341 SPI

У F030F4 всего один SPI. Поэтому, придется из внешней флеши по SPI1 сначала читать данные одного символа шрифта в ОЗУ, затем получать цвет пикселя и каждый пиксель передавать по тому же SPI1 в дисплей. Ноги CS будут разные для микросхемы флеша и дисплея.
Запрогать внешнюю флеш можно и простым программатором отдельно, залив в нее массив шрифта в виде байтов. Все равно же эта флеш сидит на SPI и внутренняя адресация у нее не равна общей адресации ARM.
NewWriter вне форума  
 

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

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

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, время: 16:19.


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