Например TDA7294

Форум РадиоКот • Просмотр темы - Хитрые, необычные алгоритмы и код
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вс апр 28, 2024 04:19:52

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


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



Начать новую тему Ответить на тему  [ Сообщений: 210 ]     ... , , , , 11
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Хитрые, необычные алгоритмы и код
СообщениеДобавлено: Чт сен 02, 2021 15:21:50 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
itoa чем не угодила? получите строку символов, которую можно выводить.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Хитрые, необычные алгоритмы и код
СообщениеДобавлено: Пн дек 26, 2022 10:21:48 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6628
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Нужда вынудила придумать метод хранения больших величин в малом пространстве....
Делал гирлянду на тини13, в ней для задания задержки переключения шагов требуются числа от 4 до... примерно 1000, чтобы занимать поменьше места я при хранении занимал 1 байт и делал распаковку по формуле вида Y=(X+1)*4;
такое хранение занимало 8 бит и позволяло получить на выходе значения от 4 до 1028 (с шагом 4 во всём диапазоне)
меня это не очень устраивало, т.к. скорость - величина обратно пропорциональная задержке меняется очень нелинейно - в начале быстро, а затем вообще незаметно.
СпойлерИзображение
для сравнения методов я взял те-же 5 бит хранения или числа 0-31 - диапазон удручает, всего до 128...
на первом же шаге скорость падает в 2 раза! а дальше меньше, если продолжить этот ряд, то вид будет ещё печальней


Тогда решил прибегнуть к методу записи чисел с плавающей точкой, именуемому в народе Float :)))
только для тини его немного оптимизировал... сделал мини, а даже точнее микроФлоат:
запись числа производится 2 кусками: в младших 2х битах само число, в трех старших - степень числа 2, на которое надо умножить.
Код:
X&=0x1F; // обрезка старших битов - в них у меня теперь другая информация хранится
Y=(X&0x03)+4;
X>>=2;
Y<<=X;
Так всего в 5 битах хранятся значения от 4 до 896, и распределение чисел гораздо удобнее для настройки скорости.
СпойлерИзображение
Ну, тоже не идеально, но уже гораздо интереснее (а ровнее тут итак не получить.)
а главное - код получился подъёмным даже для мелкой тини!

_____

Минифлоат4x4 - занимая 4 бита под число и 4 под множитель позволяет хранить в 1 байте целые числа от 0 до 507904.
Код распаковки:
Код:
#define A 4
Y=X&(~((-1)<<(A)));
X>>=A;
if (X>0) // этот приём позволяет хранить числа от 0.
    {
    Y+=(1<<(A+1));
    X--;
    };
Y<<=X;

Минифлоат5x3 - занимая 5 бита под число и 3 под множитель позволяет хранить в 1 байте целые числа от 0 до 4032.
Минифлоат3x5 - занимая 3 бита под число и 5 под множитель позволяет хранить в 1 байте целые числа от 0 до 16 106 127 360. (но с бОльшим шагом)

общий вид максимального хранимого числа для переменной минифлоат(AxB) при распаковке предложенным методом будет:
Y=((2^(A+1))-1)*2^((2^B)-2).


Вложения:
2022-12-26_11-55-52.png [37.61 KiB]
Скачиваний: 105
2022-12-26_11-56-37.png [35.11 KiB]
Скачиваний: 92

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Хитрые, необычные алгоритмы и код
СообщениеДобавлено: Пн дек 26, 2022 11:00:14 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
идея занятная, но странная... неужели работа с uint16_t создает больше проблем, чем распаковка микрофлоата?

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Хитрые, необычные алгоритмы и код
СообщениеДобавлено: Пн дек 26, 2022 11:59:59 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6628
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
У меня там длииииииииинный массив, если его элементы чар, а не инт - получается знатная экономия :hunger:

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Хитрые, необычные алгоритмы и код
СообщениеДобавлено: Пн дек 26, 2022 17:02:58 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2808
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18103
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
Ivanoff-iv, твое изобретение к флоту не имеет никакого отношения. флот - это то что плавает. а у тебя нет дробной части у которой имеется та самая плавающая точка.
ты придумал только упаковку целых чисел. и то, как я понял, с некоторым фиксированным шагом.
но тем не менее, твое творчество заслуживает уважения, а результат заслуживает внимания.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Хитрые, необычные алгоритмы и код
СообщениеДобавлено: Пн дек 26, 2022 18:17:37 
Опытный кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: 160
Зарегистрирован: Ср авг 03, 2022 05:22:56
Сообщений: 848
Рейтинг сообщения: 0
Да, а еще можно посмотреть информацию о различных алгоритамх сжатия, например, LZW.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Хитрые, необычные алгоритмы и код
СообщениеДобавлено: Пн дек 26, 2022 19:14:11 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
LZW на attiny - это было бы на самом деле незабываемо! если бы было...

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Хитрые, необычные алгоритмы и код
СообщениеДобавлено: Пн дек 26, 2022 21:24:05 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6628
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Starichok51, какраз к флоату это имеет прямое отношение (и принцип тот-же), просто я в дробную часть не залезаю, мне это незачем. Да, и шаг там как-раз не фикситованный, в начале он равен 1, а вконце, даже в применённой мной 5 битной версии шаг уже 128...
А написал я тут потому, что оказывается это всё это может быть не настолько громоздко, как принято считать...

ИМХО, этот способ очень удобен для хранения нелинейных величин, например задержки при задании скорости (ради чего я и применил) или для хранения значений яркости...

Добавлено after 2 minutes:
ПС: первый график - это как было до применения метода...

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Хитрые, необычные алгоритмы и код
СообщениеДобавлено: Пн дек 26, 2022 21:44:21 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 840
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 5598
Откуда: Minsk
Рейтинг сообщения: 0
Ivanoff-iv Поддерживаю. Я когда-то для солидного дивайса (не помигать диодами) применил 3-байтовую самопальную плавучку, написал "плавучие" функции. Не столько памяти экономии ради, для быстродействия (очень тесные временные рамки). Тестил с Сишной плавучкой - выигрыш в 2 раза. Точности хватало.
Возражение: взять камень пошустрее (и дороже, конечно) - я уже неоднократно описывал "...должна быть экономной" - ценовую политику определял владелец бизнеса.
Возражение: в твоих прогах хрен разберётся преемник, возможны трудности с модификацией - все исходники я тщательно комментировал, не-тупой - разберётся. Насчёт модификации - понадобилось суммировать много-много мелких величин, результат получался уже другого порядка. Для этой узкоспециализированной фичи (только для неё), чтоб "мелочёвка" не терялась за пределами разрядной сетки склепал нормальную 4-байтовое суммирование и соответственный буфер. За пару часов.
Конечно, это было на асме.
"Взял бы STM32."... Ээх, конец прошлого тысячелетия...

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Хитрые, необычные алгоритмы и код
СообщениеДобавлено: Вт дек 27, 2022 18:43:31 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2808
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18103
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
Ivanoff-iv, да, на счет фиксированного шага я поспешил ляпнуть не подумавши. хотя сам прекрасно знаю, что шаг растет с увеличением показателя степени.
я эту свою ошибку понял уже после отправки сообщения, но не стал исправлять пост.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


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

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


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

Сейчас этот форум просматривают: AndyGU70 и гости: 24


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

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


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