Форум Радиолюбителей

Птеродактиль трансивер (аналог+DDC)

1484506 просмотров, 2129 ответов — стр. 37 из 142

ra0ahcra0ahc
Сообщений: 4868
15 февраля 2021 г. в 12:14#541
Ну типа вроде получилось !!!
Ворота ночью придумал.
Последний шанс адау дал.
И не зависит на сколько близко тона к друг другу

Valery GusarovValery Gusarov
Сообщений: 2476
15 февраля 2021 г. в 12:53#542
Цитата: ra0ahc
ночью придумал.

Прям как Менделеев. Водку-желе ишшо надо. Чтоб много гостям не удавалось выхлебать.
ra0ahcra0ahc
Сообщений: 4868
16 февраля 2021 г. в 04:03#543
800 ма в старте
Какой он здоровый блин.

(600ма цап и адау и 800 дисплей)


16 февраля 2021 г. в 05:02#544
От icom дисплей?
ra0ahcra0ahc
Сообщений: 4868
17 февраля 2021 г. в 08:24#545
Маленькое достижение
Порадовал ток !

ra0ahcra0ahc
Сообщений: 4868
17 февраля 2021 г. в 08:40#546
Жесть , сколько соплей

Игорь 2
Сообщений: 21288
17 февраля 2021 г. в 10:30#547
Цитата: ra0ahc
Жесть , сколько соплей


Да то фигня, у меня сейчас в связке были проц, тюнер, дешифратор к процу, полосовик с тремя КСВ-метрами, вот там-то, реально проводов было...
ra0ahcra0ahc
Сообщений: 4868
19 февраля 2021 г. в 11:21#548
Научился конвертировать картинки.

Vlad
Сообщений: 2245
19 февраля 2021 г. в 12:01#549
Пользуюсь этой портабельной прогой 1yep: https://fotolub.com/9g5gf

ra0ahcra0ahc
Сообщений: 4868
19 февраля 2021 г. в 12:06#550

У меня вот "такой" вывод в файл

Relayer
Сообщений: 1006
19 февраля 2021 г. в 02:56#551
Да уж, без заставки с лого это не дело У меня вот такой.
Походу еще и простое сжатие написал на коленке - в два раза меньше картинка стала памяти кушать и рисуется быстрее

ra0ahcra0ahc
Сообщений: 4868
19 февраля 2021 г. в 04:30#552
Цитата: Relayer
в два раза меньше картинка стала памяти кушать

Согласен, не обошлось без компрессии. Алгоритм не мой, его Дима придумал (Волк трансивер). Но он полностью открыл исходники (спасибо ему огромное за это)и по этому смысл тратить время на алгоритмы...бери да пользуйся. Алгоритм RLE. Для чб рисунков - огонь!
ra0ahcra0ahc
Сообщений: 4868
19 февраля 2021 г. в 04:34#553
Подарок от UA3REO
// Convert image in https://sourceforge.net/projects/lcd-image-converter/
// preset name: Color R5G6B5
// data block size: 16 bit(s), uint16_t
// RLE compression enabled: yes !!!!!!!
// bits per pixel: 16

это-конвертер, а это декодер на С
Код: [Выделить]void LCDDriver_printImage_RLECompressed(uint16_t x, uint16_t y, const tIMAGE *image, uint16_t transparent_color, uint16_t bg_color)
{
uint32_t pixels = image->width * image->height;
uint32_t i = 0;
uint32_t decoded = 0;

LCDDriver_SetCursorAreaPosition(x, y, image->width + x - 1, image->height + y - 1);
while (true)
{
if ((int16_t)image->data[i] < 0) // no repeats
{
uint16_t count = (-(int16_t)image->data[i]);
i++;
for (uint16_t p = 0; p < count; p++)
{
if (image->data[i] == transparent_color)
LCDDriver_SendData(bg_color);
else
LCDDriver_SendData(image->data[i]);
decoded++;
i++;
if (pixels <= decoded)
return;
}
}
else //repeats
{
uint16_t count = ((int16_t)image->data[i]);
i++;
for (uint16_t p = 0; p < count; p++)
{
if (image->data[i] == transparent_color)
LCDDriver_SendData(bg_color);
else
LCDDriver_SendData(image->data[i]);
decoded++;
if (pixels <= decoded)
return;
}
i++;
}
}
}

формат данных

Код: [Выделить]static const tIMAGE IMAGES_logo_pd = {
.width = 262,
.height = 129,
.data = (const uint16_t[]) {
0x0093, 0xffff, 0xfff3, 0xf79e, 0x..........

запуск

Код: [Выделить] LCDDriver_printImage_RLECompressed(((LCD_WIDTH - IMAGES_logo_pd.width) / 2), ((LCD_HEIGHT - IMAGES_logo_pd.height) / 2), &IMAGES_logo_pd, BG_COLOR, BG_COLOR);

Relayer
Сообщений: 1006
19 февраля 2021 г. в 05:27#554
Такая реализация теряет один бит цветности. Формат 565 - это 16бит, но тут старший бит используется как признак данные/rle.
И такой алгоритм rle с отдельным кодированием длин плохо работает с картинками у которых rle-последовательности небольшой длины. Worst case как принято говорить. У меня rle, но по другому сделан. Нет потери цвета и жмет лучше. Ну и прожка к нему для конвертирования jpg/png/bmp в сжатый формат тоже самописная. Чего только не сделаешь ради красоты
ra0ahcra0ahc
Сообщений: 4868
19 февраля 2021 г. в 07:21#555
Конвертация 8.24 во Float и обратно в 8.24
saiRxBank saiTxBank оба формата int32_f

float32_t a= saiRxBank[saiRxBankNowNumber][i ]/0x1p24f;

теперь в "а" float

saiTxBank[saiTxBankNowNumber][i ] =(int32_t) (a *0x1p24f);