Pull to refresh
20
0
Максим Ильин @imax9

Multisystem ledblinking developer.

Send message
Спасибо тебе милый человек, отплюсовать не могу — подвергся нападению банды минусеров.
Ты просто сделал мне вечер субботы и часть ночи воскресенья. Оторваться не смог, прям как про профессора Мориарти нашего поколения. Про связь с TrueCrypt читать Эпизод 3 «У него всегда была темная сторона»
Странно, еще раз перепроверил, яркость действительно на результат не влияет. Кусок кода остался от ssd1309, вроде когда переносил показалось что влияет, i2c вариант у коллеги по цеху, как выцеплю — результат сообщу.
Неоднозначно получилось. Конечно любая функция HAL тормознее CMSIS. Имел в виду, в конкретном коде что в HAL тормозит общий результат и требует переписывания на регистрах.
Засада в том, что в вашей библиотеке используются массив шрифтов char (байт), а у него uint16_t (два байта).

Никто Вам не запрещает работать через указатели и обращаться хоть к байту, полуслову или слову. Библиотеку Алексеева не исследовал, но мне кажется может возникнуть вопрос с ориентацией шрифта, у меня вертикальный, там, судя по всему горизонтальный. Поизучайте статью на датагоре Визуализация для микроконтроллера. Часть 1. OLED дисплей 0.96" (128х64) на SSD1306
Странно, у меня заводится и без них, похоже еще у китайцев и разные контроллеры там. Размер дисплея у Вас какой?
Хорошо, спасибо, добавлю в инициализацию. С остальным справились? Все заработало?
Совсем забыл, на STM32F103 у меня не заработало с DMA, пришлось менять функцию пересылки на:
HAL_SPI_Transmit(&hspi3,dt,128,10);
Возможно проблема описана в публикации STM32 — I2C — HAL_BUSY сам я не проверял, перешел на STM32F4 серию.
Давайте, сначала определимся откуда плясать.
1. Какой процессор/плата у вас?
2. Какой экран SSD1306 или SH1106, интерфейс I2C или SPI?
3. Светодиодами Вы уже помигали?
4. Как вы определяете определяете управляющие сигналы и сам SPI?
5. Мусор на экране после инициализации увидели?
6. Логический анализатор какой-нибудь есть?
А зачем этот include нужен?
В STM есть:
const uint8_t SmallFont[] =
Ссылку же давал на готовую либу в архиве или на моем сайте imax9.narod.ru
>Пальпация слона с целью обнаружения болезни — весьма затратное предприятие, он толстый везде.

Вот тут, я с Вами согласен, избыточность HAL иногда просто поражает.

>Но саму проблему я указал более чем точно — тотальное разделение.

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

>На отдельном слое работы с примитивами — HAL и CMSIS должен отсутствовать!!! У вас для этого есть нижний слой — набор функций работы с железом.

Т.е. Вы предлагаете рисовать все по точкам и на низком уровне перебрасывать массив? Если бы я хотел написать универсальную библиотеку под разные дисплеи это бы имело смысл.

>Сколько времени у вас займет переписывание кода для возможности печатать разным шрифтом, добавить слой графики, сменить жк экран, сменить мк???

Тут я совсем перестал вас понимать, возможно, уровня моего просветления не хватает. Вы хотите сказать что переход на другой процессор на CMSIS легче и быстрее чем HAL? Про слои тоже уже звучит как мантра.
Не хочется разжигать холивар HAL vs CMSIS. Умею работать с тем и другим. Хотелось бы услышать поконкретней, какая именно функция HAL является критической по скорости чтобы ее переписывать на регистры?
Наши полицейские за день бы вскрыли пароль, новейший терморектальный криптоанализатор еще никто не отменял. Шутка если что.
Не знаю, как насчет японцев, но я до последнего не мог поверить что виснет ардуинкаа в моем терморегуляторе для морозильной камеры, причем без всякой системы могла проработать месяцами или зависнуть два раза за неделю. Даже watchdog проблему не решал. Причина оказалась банальна — перегрев, дополнительно с ардуиной и модулем питания к ней, тепло выделяла плата резисторов на светодиоды морозилки. Определил случайно, оказавшись рядом когда зависло.
2

Information

Rating
Does not participate
Location
Россия
Registered
Activity