Перейти к содержанию
    

mantech

Участник
  • Постов

    7 142
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

Сообщения, опубликованные mantech


  1. 1 час назад, jcxz сказал:

    Попробуйте дать "свой поток" каждому устройству, висящему на общей шине. Например - каждому из устройств висящих на единой SPI или единой I2C.

    Да, есть такое в моем случае ФС. Долго мудрил с разделением доступа к ней, в итоге сделал драйвер со слотами доступа каждой задачи, а ФС работает в одном потоке.

    1 час назад, jcxz сказал:

    Например: у меня есть такой объект, как "поток отладочного вывода".

    Ну тут решил, что кольцевой буфер лучше разделения между потоками. Хотя согласен - у каждого свои пристрастия, я вот очень не люблю критические секции)))

  2. 10 часов назад, jcxz сказал:

    Для борьбы с инверсией приоритетов задач.

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

    28 минут назад, dxp сказал:

    Например, к объекту лезут два потока с приоритетами 3 и 8 (меньше - выше приоритет), чтобы поток с приоритетом 8 не блокировал работу потока с приоритетом 3

    Ну а если №8 уже занял устройство? №3 по любому будет ждать, хоть у него самый высший приоритет будет. Поэтому лучше метод каждому устройству свой поток. Медленное устройство прекрасно может работать по принципу мейлбокса, обслуживая фоновые запросы от неск. потоков и не блокируя их.

    33 минуты назад, dxp сказал:

    Точно так же реализуется обработка фоновых заданий: если есть затратные по времени, но не приоритетные задачи (какие-нить вычисления длительные), потоки не выполняют их в своём цикле, а скидывают в очередь низкоприоритетного потока.

    Ну вот как раз это и имел ввиду.

  3. Приветствую.

    Подкинули на днях ненужных дисплейчиков неск. штук, вот таких https://www.panelook.cn/RT35HV028A-detail_cn_103529.html

    Вопрос, работал-ли кто с подобными, вообще штука стоящая или на мусор только, и второе его кроме, как по MIPI можно еще подключить, например по SPI?

  4. 22 часа назад, jcxz сказал:

    А нужно ли экономить электроэнергию внутри лабораторных приборов

    Думаю те, кто хочет подобным заняться, для вас есть идея, займитесь экономией энергии в компьютерных серверах - вот там, это жесть вообще, 3 стойки серверов штук 10-12, еще несколько l3-роутеров, работают 2 кондея по 11000btu, если их выключить, то через 10 мин - сахара, вот где нужно уменьшать потребление)))

    20 часов назад, Plain сказал:

    Видны выбросы — от ёмкостей защитных диодов.

    Вы хотите вообще без переходных процессов, идеальная схема?  Интересно)))

  5. 38 минут назад, Слесарь сказал:

    А если преобразователь на ПП не работает, как выяснить причину?

    Всегда делал очень просто, отпаивал элемент, чтоб не создавал обходную связь, прозванивал нагрузку на предмет КЗ, если норм, ремонтировал преобразователь..

    Если в цепи КЗ, то проверял по очереди узлы, где больше всего вероятность КЗ. Тепловизора у меня нет, я разработчик, а не ремонтник в сервисе.

  6. 27 минут назад, aaarrr сказал:

    Просто ничего не видно.

    Да, не очень...

    Вообщем, скажу я, ковыряться с этими шрифтами еще тот "кайф", путем ковыряния в исходниках нашел то, что у них называется основная линия (baseline), но это не то, что я думал, это линия основания шрифта, НО, у таких символов, как "q" или "у", эти закорючки внизу идут ниже этой линии, и они придумали descent-фактор, который нужно учитывать вниз от осн. линии... Вообщем посчитав все эти высоты и снижения наконец-то получил желаемый результат...

     

    Безымянный.jpg

  7. 18 минут назад, aaarrr сказал:

    x, y и advance.x, advance.y

    x y - это я так понимаю высота и ширина, а что эти адвансы должны показывать ?

    18 минут назад, aaarrr сказал:

    Пример растеризации

    У меня почти так и есть.. Экран с потертым резистивным тачем для отладки, поэтому и качество фотки не айс..

    Безымянный.jpg

  8. 2 часа назад, sonycman сказал:

    Думаете, слишком много?

    Да кто его знает))))))  Тут принесли безналичный терминал, так он около 150 сек загружается, уже устаю ждать...

    2 часа назад, sonycman сказал:

    Железячники, видимо, хорошие, а программисты студенты одни...

    Просто стиль бизнеса такой, нужны хорошие спецы по железу и какие-то программисты, чтоб просто проверить работоспособность плат, ничего сверхестественного от них и не нужно.

  9. 37 минут назад, aaarrr сказал:

    Так растеризацию достаточно выполнить один раз, а дальше использовать кэш.

    Кэш нужно довольно большой, т.к. наряду с символами высотой 20-30 пикс. используем и высоты по 150-200 пикс, что с учетом количества символов и нескольких типов шрифтов довольно накладно. Поэтому решил закэшировать только системный фонт, тот, который используется в настоечной форме гуя...

    Да и не такое уж большое время занимает растеризация проверил, символ "0" с размером в 150пикс растеризуется за 150мксек.

    Другой вопрос, на который пока не могу ответить, как выравнивать символы. Например цифры и большинство букв можно печатать напрямую, у них практически одна высота, но как быть с Q  или Й, У  запятой?

  10. 10 часов назад, sonycman сказал:

    с отключением питания) - за 500 с

    В смысле 8 минут???  Я правильно понимаю?

    10 часов назад, sonycman сказал:

    или не захотели разобраться, как правильно

    А зачем им это, наде железку продавать, желательно сотнями тысяч штук, а с этим и вы разберетесь)))

  11. 15 часов назад, wim сказал:

    Зачем же пре-? Делайте сразу регулятор.

    Вот реально, прямь всем и каждому нужен регулятор за 50к с всякими няшками, тфт дисплеями, кучей кнопок и т.д.??  Лет н..адцать назад сделал самодельный, линейный, с аналоговыми крутилками для установки напряжения и ограничения по току в качестве индикаторов поставил восстановленые платы от мультиметров, которые сожгли "электрики" путем проверки тока в розетке (это не шутка!), до 30В и до 3А тока, да, одноканальный, но как тут уже замечали, в отлаживаемых устройствах уже есть все преобразователи, а без них рискуете собрать все ЭМИ наводки на подводящих проводах, да и зачем это нужно - х.з. ибо всегда начинаю отладку нового устройства с проверки стабилизаторов и если все ок, можно проверять саму схему. На макс. нагрузке греется, но радиатор сзади большой, и никаких кулеров - бесят. Все куда проще, если подумать...

  12. 06.01.2022 в 22:04, mantech сказал:

    Альфа канал для этого можно использовать

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

    Но правды ради, по сравнению со временем растеризации, потери на чтение незначительны, т.к. это нужно только для контурных точек.

  13. 40 минут назад, do_not_know_Linux сказал:

    произойдет какой-то сингнал для Generic Interrupt Controller ?  или просто выставятся какие-то флаги? 

    Как и в любом таймере, выставится флаг переполнения, если установили разрешение прерывания по этому флагу то контроллер прерываний отреагирует как положено.

  14. 6 часов назад, do_not_know_Linux сказал:

    Что-то вызывается? 

    Что-то взрывается)))))))   Ну честное слово, да тоже самое, что и в любом другом таймере и МК...

    6 часов назад, do_not_know_Linux сказал:

    а что происходит когда досчитается до нуля?

    До нуля он не досчитается, а до максимума, а вот потом обнулится.

  15. 47 минут назад, tgruzd сказал:

    Но да, ситуации бывают разные.

    В моей системе используется оба слоя и основной(бэкграунд) и верхний, так удобнее, например непрозрачные картинки (jpeg), формы оконного интерфейса проще рисовать на нем, а прозрачные картинки в верхнем слое, так происходит автоматическое наложение и ничего вычислять не нужно, но не всегда удобно все рисовать на верхнем слое, а поэтому система должна уметь рисовать и там и там...

  16. 50 минут назад, tgruzd сказал:

    если контроллер поддерживает альфаканал, то выходит, что ваша байтовая матрица яркости - это он и есть. Выводите в порядке: A(байт яркости, в вашей терминологии),R,G,B  

    Там не в альфа канале дело, надо было пересчитать цветовые компоненты в соотв. с каналом яркости пикселя. Проблема была в том, что я не брал цветовое значение точки для расчета, вот и тупило на разных фонах. Альфа канал для этого можно использовать только на верхнем слое, на бекграунде альфа не работает...

    56 минут назад, tgruzd сказал:

    для относительно больших площадей с плавным градиентом цвета - плохо

    Так тут конечно, а на 8и битном цвете градиент это такая пакость)))

  17. 26 минут назад, tgruzd сказал:

    а вы куда изображение выводите? Если, например, на TFT с форматом цвета RGB565

    TFT ARGB8888

    27 минут назад, tgruzd сказал:

    впрочем, на RGB565 в принципе со сглаживанием всё очень плохо).

    Где-то видел видео, похуже, чем на 24х битах, но вполне норм выглядит.

  18. 28 минут назад, aaarrr сказал:

    Попробуйте без коррекции вывести черный текст на белом фоне и белый на черном. Один из вариантов будет выглядеть откровенно плохо.

    Попробовал свой вариант, на черном и белом фоне рисует нормально, НО на некоторых цветах самого символа (например синем) почти не ощущается сглаженность, тогда, как на желтом и зеленом все норм... Вообщем не хватает знаний по этой математике((

  19. 20 минут назад, _4afc_ сказал:

    Я вам дал наколку на идеальную формулу.

    Попробую, просто думал, что задача вроде типичная и есть какие-то проверенные решения...

    Видимо не могу "правильно" задать вопрос поисковикам, все какие-то фотошопы и вебы вылезают((

  20. 26 минут назад, aaarrr сказал:

    Не нужна плавучка - в целых,

    Ну в целых-то тут не получится, разве, что фикс. точка.

    27 минут назад, aaarrr сказал:

    >32 все компоненты одним умножением.

    А это как, поясните?

    27 минут назад, aaarrr сказал:

    нужна еще гамма-коррекция.

    На сколько сильно тут нужна, все-таки просто сглаживание контуров, не фотография в высоком качестве.  

    Может какой-нить примерчик такого преобразования есть?

  21. 11 минут назад, _4afc_ сказал:

    то перевести его в YUV

    Так-то да, но медленно, для всего контура символа нужно делать пересчет в плавучке, вот и спрашивал, может есть более быстрый алгоритм только для коррекции яркости...

    А если так, берем каждую компоненту, делим на 255 в плавучке, получаемое число умножаем на коэффициент яркости выделяем целую часть и снова собираем компоненты в цвет?

  22. Приветствую.

    Есть такая задачка, рисовать на экране символы, которые получены TTF растеризатором, результатом работы которого является байтовая матрица с коэффициентами яркости каждой точки, при том, что для символа задан цвет (24бита). Я так понимаю, что если коэффициент=255, то цвет пикселя будет именно тот, что задан, если =0 то точки нет, или черная, но как быть со значениями 1-254? Их нужно как-то пересчитывать для R G B по отдельности, вопрос, как? 

×
×
  • Создать...