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

STM32 для чайника


ART_ME

Рекомендуемые сообщения

Так я и переделал ведь. Сделал отправку в DMA после каждой битовой строки образа символа. Попробовал поездить текстом по экрану - символ "1" оставляет какой-то мусор, где-то косячок остался.. :) 

Размер буфера посчитал так - ширина "W" - 59 бит + межсимвольный пробел 6 бит * 2 байта цвета = 130 байт на буфер.

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

главное заработало. Скорости дисплея хватает для весьма плавной отрисовки приборного интерфейса. Кино смотреть не получится, а для прочих применений - вполне

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

именно 1-ка и именно справа остается незаполненный столбец.. смотрю процедуру, пока не понял, где..

причем что маленьким шрифтом, что большим..

20170705_142135.mp4

Ссылка на комментарий
Поделиться на другие сайты

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

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

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

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

Размер шрифта значения иметь не будет, так как у единицы пиксели добавляются всегда для выравнивания цифрового знакоместа. На символьные такое правило не распространяется. Сделано это для того, чтобы если единица меняется на другую цифру, число не прыгало.

Еще есть вероятность, что ошибка в таблице знакомест шрифта. Я там вручную правил, возможно что-то не досчитал. Там есть индекс символов с длинами полей. Их бы проверить внимательно

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

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

хорошая библиотека, спасибо!

Ссылка на комментарий
Поделиться на другие сайты

Вопрос такой взял ST-Link mini такой и подключил к своей платке на STM32F103C8T6 и в IAR версия 7.50.2 пытаюсь запустить отладку, дрова стоят, IAR видит платку и заливаю с помощью кнопки на панели Debug withot donloading все заливается процессор работает вот что пишет после этого Screenshot_2.thumb.jpg.03db4dff3350cc0075f2654116867c0a.jpg и все бы ничего но я не могу перемещаться отладкой у меня не загораются кнопки вот эти Screenshot_3.jpg.2facfb46a316aff727af89d429f3aacc.jpg F10 тоже ничего не дает, кстати когда нажимаю кнопку make&restart debuger выкидывает такую ошибкуScreenshot_4.jpg.0d9d30e6304f51c3c02ccac83c88678a.jpg , и чтобы с нее выйти нужно только отключать от ЮСБ отладчик, иначе не закроешь это окно 

Когда просто нажму donload and debug выскакивает такое и просто стоит и все Screenshot_5.jpg.594b86c366d8f280607a3c62b8031d91.jpg

Изменено пользователем Электронщик
Ссылка на комментарий
Поделиться на другие сайты

В 05.07.2017 в 19:08, Alex Falcon сказал:

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

хорошая библиотека, спасибо!

А вы не могли бы поделиться исходником именно тем что на видео? и ссылкой на этот экранчик.

Ссылка на комментарий
Поделиться на другие сайты

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

А вы не могли бы поделиться исходником именно тем что на видео? и ссылкой на этот экранчик.

2.8 дюймов TFT LCD Модуль без Сенсорной Панелью ILI9341 Привод IC 240 (RGB) * 320 SPI Интерфейс (9 IO)
http://s.aliexpress.com/nMFnqYBb
(from AliExpress Android)

именно тот исходник не сохранился, есть только уже исправленный.. B)

Изменено пользователем Alex Falcon
Ссылка на комментарий
Поделиться на другие сайты

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

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

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

вернее немножко не так - записать в фиксированную область определенную параметрами скроллинга

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

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

записать в фиксированную область определенную параметрами скроллинга

ок. посмотрю. Щас пока время есть, жду операционники из Китая.. :) 

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

А вы не могли бы поделиться исходником

Под STM32F0xx.  конфигурация Cube там же.. Лежит тут.

Ссылка на комментарий
Поделиться на другие сайты

С отладкой разобрался, не понравилось только то что в начале я должен создать Hex и залить его в память МК, а только после этого в IAR можно выбрать отладку с помощью кнопки Debug without downloading и получается чтобы проверить то что ты скорректировал в коде нужно перезаливать Hex в память МК и опять нажимать кнопку  Debug without downloading, если бы была отладка в реальном времени(как ее называют) так тогда бы сделали так чтобы можно было менять код и сразу кнопкой Debug without downloading заливать и все(хотя бы так), а лучше поменял допустим число переменной и чтобы по шагам проходишь и оно показывает что поменяно, а то каждый раз перезаливать Hex тоже время тратиться.

Ссылка на комментарий
Поделиться на другие сайты

Так нужный режим там есть, Download and debug называется.

Изменить значение переменной прямо во время работы программы, без перезаливки прошивки, тоже должна быть возможность. Eclipse такое точно делать умеет. Вряд ли IAR сильно в этом плане отличается.

Ссылка на комментарий
Поделиться на другие сайты

 

В 07.07.2017 в 07:18, mail_robot сказал:

дописать в либу функционал вывода со скроллингом

в общем вот: Посмотреть

Скроллинг только вертикальный там. На весь экран получилось, а вот в окне чёт никак.. 

Переписал вывод символов через DMA. Теперь размер буфера можно указывать при вызове функции. На видео видна разность в скорости вывода. зато можно шрифты любого размера выводить, лишь бы минимум одна строка маски поместилась в буфер.

Ссылка на комментарий
Поделиться на другие сайты

ну ничо так. Толково

Каков на самом деле механизм скроллинга? Потому как в даташите про это дело мне показалось как то путано написано.

В 09.07.2017 в 06:49, Вуйко сказал:

Изменить значение переменной прямо во время работы программы, без перезаливки прошивки, тоже должна быть возможность

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

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

Только что, mail_robot сказал:

Каков на самом деле механизм скроллинга? 

1. Скроллинг только вертикальный. Задаются верхняя граница, длина области скроллинга и нижняя граница. В сумме должно быть 320. Если нет - не включается.

2. Дальше - указываем из области скроллинга на номер строки, которая будет отображаться первой, остальные по порядку отображаются ниже с закольцовыванием на первые строки. Никакого доп. буфера там нет :( 

3. Реализовал 3 функции.

- Включение режима, с указанием цвета фона и необходимости очистки области скроллинга.

- Вывод строки. Функция автоматом плавно сдвигает скролл вверх на высоту шрифта + 3 и выводит строку.

- Выключение скроллинга с указанием цвета и необходимости очистки экрана.

Всё работает на весь экран, пока, в окне скроллинг получается странным :unsure:, поразбираюсь еще..

Рассортирую либу на Разделы - собственно драйвер (инициализация, низкоуровневые операции, дефайны для адаптации к текущей конфигурации камня), графическая часть (примитивы, заливки (все горизонтальные и вертикальные линии только через DMA)), ну и работа с текстом (функции вывода символа, текста и т.п. )

Что еще упустил?

Ссылка на комментарий
Поделиться на другие сайты

да вроде как больше чем достаточно

у меня еще не получилось управлять яркостью дисплея программно. Пробовал различные последовательности команд, но что-то как-то бестолку. Я на самого умного не претендую, поэтому вполне допускаю что не особо внимательно читал. Надо было быстро и чтобы работало. В итоге накалякал основную базу функций под этот дисплейчик и очень рад что вам помогло стартануть и дополнить. Львиная доля времени ушла на знакогенератор и шрифты, а так же толовую реализацию DMA, потому как все что болталось в сети было просто жутью корявой. Возможно и эта фича (яркость) у вас получится в реализации. У меня руки так и не дошли, и долго еще не дойдут, так как почти все время убивается на стройку дома. Наблюдение за джамшутами, материалы, проект и прочая лабудень + зарабатывание кучи денег. Думаю паяльник в руки возьму еще не скоро, но советом помочь смогу )

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

В 08.07.2017 в 22:57, Электронщик сказал:

не понравилось только то что в начале я должен создать Hex и залить его в память МК, а только после этого в IAR можно выбрать отладку с помощью кнопки Debug

В настройках поставить галку и при отладке будет сразу заливать во флешь.

ИАР.jpg

Сергей.

Ссылка на комментарий
Поделиться на другие сайты

Дисплейчик кстати этот мне ооочень понравился. Оптимальный габарит + разрешение (инфоемкость) и совсем немного проводков надо на управление. Не надо мудрить со всякими там DCMI и прочими многоногими и быстрыми интерфейсами. Скорости ему хватает, полноцвет. Чего еще надо? Если соорудить толковую либу, то связке STM32+ILI9341 просто цены не будет для любительских девайсов. Причем ценник на решение буде более чем демократичный и без убогих костылей в виде AVR + 1602 и иже с ним

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

Но если количество одновременно обновляемой информации на экране достаточно велико, то скорости начинает не хватать.. Если подходить к делу с умом, то да, согласен. :)  

Ссылка на комментарий
Поделиться на другие сайты

Я для этого дела в коле вводил оптимизацию. Запоминал предыдущее состояние отображения и изменял только то, что подлежит изменению. И все было ОК.Очень редко когда изменяется одновременно большое количество информации. Основная масс обычно более-менее статична.

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

8 минут назад, mail_robot сказал:

вводил оптимизацию.

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

Ссылка на комментарий
Поделиться на другие сайты

не, не надо. Это функция уже основного кода. Излишняя универсализация чаще всего оказывается только недостатком

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

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