Как-то долго я не обращал внимания на эту библиотеку, но вот насталов время.
Там есть куча всяких полезностей, в том числе и быстрых математических функций. И даже вычисление целочисленного квадратного корня. Круто, я смогу отказаться от самописной реализации в пользу той, которую предлагает компания ARM.
Для начала проверим, так ли быстр армовский квадратный корень и подходит ли он именно для тех задач, для которые необходимы мне.
Статья ориентирована на одного моего товарища, вполне перспективного программиста, надеюсь она ему поможет. Если вы не он, закройте страницу тоже можете читать.
Основные вопросы этой заметки:
- как начать разрабатывать ПО для
stm32
в Keil
;
- что для этого необходимо.
Начать необходимо со второго вопроса. Необходимый минимум это среда программирования (Keil
), программатор и отладочная плата. Можно конечно и в симуляторе запускать программу, но это не так инетресно, так что плата и программатор нужны. Где брать писать не буду, не моя это забота.
Вы также часто пользуетесь кейлом как и я? Программируете микроконтроллеры компании Миландр? Вы хотите легко и просто подключить и использовать в своём проекте FreeRTOS? Тогда эта маленькая заметка для вас.
План действий:
- создаём проект;
- выбираем используемые пакеты;
- конфигурируем операционку;
- запускаем и пользуемся.
Постоянно приходится передавать и принимать данные из/в UART, SPI, I2C и др. Всё просто и понятно когда посылки идут редко и есть время на их обработку, а что же делать если посылки могут идти пачками за один раз, а потом долгое время отсутствовать и мы при обработке первой не успеваем обрабатывать остальные и они теряются или портятся. Значит нужно использовать какой-то буфер, откуда потом понемногу брать и обрабатывать данные, а что делать если мы уже заполнили буфер и нам уже некуда писать? Писать дальше начиная с первого (на самом деле с нулевого) элемента буфера, дополнительно нужно учитывать место с которого можно читать данные и место с которого можно писать. Вот мы и получаем наш кольцевой буфер.
О полезности операционных систем реального времени можно говорить часами, ровно как и о их вреде. Но раз уж читаете эту запись, значит RTOS вам действительно нужна.
Здесь не будет описания как пользоваться FreeRTOS. Всё что будет затронуто - это запуск на микроконтроллере 1986ВЕ92У (К1986ВЕ92QI) фирмы Миландр. В принципе данный гайд аналогичен для 91, 93 и 94 чипа.
Если разобраться, и разложить всё по пунктам, то можно привести всю задачу к нескольким простым шагам:
- скачиваем FreeRTOS и распаковываем;
- создаем проект в Keil (я использую версию 5);
- подключаем операционную систему;
- настраиваем и пользуемся.
Широтно-импульсная модуляция (ШИМ, англ. pulse-width modulation (PWM)) — процесс управления мощностью, подводимой к нагрузке, путём изменения скважности импульсов, при постоянной частоте
В микроконтроллерах stm ШИМ можно генерировать несколькими способами. Один из них программный - подача нуля и единицы на логический вывод в нужное время, и аппаратный - используя один из таймеров контроллера.
В данной заметке рассмотрим второй способ.