Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Re: Таймер не работает

Пн дек 16, 2019 11:59:36

А набортная флэшь уже закончилась или ты её солить собрался?

Re: Таймер не работает

Пн дек 16, 2019 12:20:13

Набортной в stm32f412 вроде 1 или 2 метра, а один только лис весит метр

Добавлено after 4 minutes 5 seconds:
Еще шрифт подгрузил не хилый, мне кажется я когда программу шью, где то с другой стороны spam выпадает

Re: Таймер не работает

Пн дек 16, 2019 12:21:01

Набортной в stm32f412 вроде 1 или 2 метра, а один только лис весит метр

Разве он не должен весить 240 * 240 * 2 / 1024 = 112.5 КБ?

Re: Таймер не работает

Пн дек 16, 2019 12:36:06

Не, 24bit красивше

Re: Таймер не работает

Пн дек 16, 2019 12:38:24

Не, 24bit красивше

У тебя 24-х битный дисплей? По идее там 18-ть бит, но судя по коду используются только 16-ть. В любом случае даже если 3 байта на цвет, все равно выходит 169 КБ.

Re: Таймер не работает

Пн дек 16, 2019 12:48:35

У меня конвертор на 24Бит или 16 Бит, на дисплее разница небо и земля. 240x240x24 = 1.3MB

Re: Таймер не работает

Пн дек 16, 2019 12:51:26

Сам же только что сказал, 24 БИТ, а не байт :)

Re: Таймер не работает

Пн дек 16, 2019 13:00:34

СпойлерИзображение


Добавлено after 5 minutes 2 seconds:
Я запутался уже

Re: Таймер не работает

Пн дек 16, 2019 13:02:49

СпойлерИзображение

Зачем мне картинка в BMP... Кстати, судя по схеме дискавери дисплей там подключен по 16-ти битной шине, так что наверняка у тебя просто конвертация цветов поломана.

Re: Таймер не работает

Пн дек 16, 2019 13:04:46

Reflector, Шах и мат тебе! BMP, переведённый в С-массив, весит 1 Мб :)

Re: Таймер не работает

Пн дек 16, 2019 13:24:44

Ага, а размер прошивки будем определять по размеру HEX файла. :shock: :facepalm:
TEPEM, разве не знаете что *.c файл компилируется? Думаете что после этого объем картинки по прежнему 1 МБ? :))) :facepalm:

Re: Таймер не работает

Пн дек 16, 2019 13:30:31

Ну это же массив чисел, он его что архивирует?

Re: Таймер не работает

Пн дек 16, 2019 13:33:24

TEPEM, тебе нужно написать/найти простенькую утилитку которая бы загружала на ПК картинку, брала цвет каждой точки, преобразовывала его в RGB565 и сохраняла в виде массива 16-ти битных значений, тогда его размер после компиляции будет 112 КБ.

Re: Таймер не работает

Пн дек 16, 2019 13:39:18

Глянул краем глаза даташит на контроллер. Он поддерживает R4G4B4, R5G6B5 и R6G6B6. Судя по коду ТС, он использует R5G6B5 (16 бит на пиксел), но хранит в памяти как R8G8B8.
Спойлер
Код:
for (i = 0; i < 16384; i++)
{
if ( x < 127 )
{
if (i>0)ih = i*3;else ih=3;

r8 = picture1[ih-1]; g8 = picture1[ih-2]; b8 = picture1[ih];

r = ((r8 & 0xF8) >> 3);
g = ((g8 & 0xFC) >> 2);
b = ((b8 & 0xF8) >> 3);


rgb565 = ((uint16_t)(r) << 11) + ((uint16_t)(g) << 5) + ((uint16_t)(b) << 0);



WritePixel(x+56, y+56, rgb565);

x++;
}


Добавлено after 1 minute 25 seconds:
TEPEM, тебе нужно написать/найти простенькую утилитку которая бы загружала на ПК картинку, брала цвет каждой точки, преобразовывала его в RGB565 и сохраняла в виде массива 16-ти битных значений, тогда его размер после компиляции будет 112 КБ.
Плюс процессор не будет заниматься это конвертацией и FPS можно поднять до бесконечности.

Добавлено after 2 minutes 43 seconds:
Ну это же массив чисел, он его что архивирует?
Он его компилирует в двоичный массив размерностью 240 x 240 x 3 байт. Можно без потери сократить до 240 x 240 x 2 байт, если сделать предварительную конвертацию RGB888->RGB565 на компе.
Последний раз редактировалось VladislavS Пн дек 16, 2019 13:42:03, всего редактировалось 1 раз.

Re: Таймер не работает

Пн дек 16, 2019 13:41:39

А ведь правда! Вот я туплю, сейчас разберусь с шрифтом и займусь этим, по моему только с прогой могут быть проблемы

Re: Таймер не работает

Пн дек 16, 2019 13:50:39

по моему только с прогой могут быть проблемы
Какие могут быть проблемы? Вот тебе шуточный код :)
Спойлер
Код:
FILE *f_in, *f_out;
f_in = fopen("файл1");
f_out = fopen("файл2");
while(!eof(f_in))
  fwrite(f_out, RGB888toRGB565(fread(f_in, 3)));
fclose(f_in);
fclose(f_out);

Re: Таймер не работает

Пн дек 16, 2019 14:30:31

Я тоже об этом подумал сначала) Но вспомнил, не вс не делфы у меня нет)

Добавлено after 46 seconds:
Ну а вообще это реализуемо? Использование флешки как хранилища независимого?

Re: Таймер не работает

Пн дек 16, 2019 14:33:29

Конечно, почему нет.

Re: Таймер не работает

Пн дек 16, 2019 14:38:57

VladislavS",url="/forum/viewtopic.php?p=3756781#p3756781 писал(а):Глянул краем глаза даташит на контроллер. Он поддерживает R4G4B4, R5G6B5 и R6G6B6. Судя по коду ТС, он использует R5G6B5 (16 бит на пиксел), но хранит в памяти как R8G8B8.

У меня же данные передаются на дисплей по 16 битной шине, значит что 24 что 16 должно одинаково отображать? Почему разница огромная?

Добавлено after 2 minutes 59 seconds:
Я в начале две картинки 128х128 рядом заливал на экран, жалко фоток не осталось, там одна хоть глаз коли

Re: Таймер не работает

Пн дек 16, 2019 14:42:06

Прочитай datasheet ST7789, там в разделе 8.8 DATA COLOR CODING больше 30 страниц всевозможных вариантов передачи данных. Ну нельзя же всё тыком делать. Надо хоть иногда нарисовать на бумажке карандашиком, посчитать объём данных, скорость их передачи. Разложить где что лежать должно, в каком формате.
Последний раз редактировалось VladislavS Пн дек 16, 2019 14:46:38, всего редактировалось 1 раз.
Ответить