"CeleronTimer" C library топик-ссылка

Библиотека "Программных Таймеров" (реализация синхронных и асинхронных задержек в прошивке микроконтроллера). Особенности: Кроссплатформенность. Микроконтроллеры любой разрядности. Удобное и функциональное API. Нетребовательная к ресурсам МК. Дискретность отсчёта = 1мс. Достаточна для реализации пользовательского интерфейса (и прикладной логики) в устройствах на микроконтроллере.

Частотомер на STM32F10x

How it all began…

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

Дано:
  • Cигнал прямоугольной формы
  • Меандр
  • Приведен к логическим уровням микроконтроллера
  • Выходная частота не более 6МГц
  • Погрешность измерений 1Гц


Последний пункт был прописан в ТЗ. Заказчик, как выяснилось позднее, ляпнул его туда с мыслью “лучше – не хуже, авось сделают и так”. Об этом я узнал позднее, а до того момента пришлось откинуть разные варианты реализации, погрешность которых выходила больше – например с делителями входного сигнала.
Сходу ничего готового не нашлось, хотя я был уверен по дороге домой, что на запрос “Частотомер STM32” Google поделится со мною массой готовых устройств – мне лишь останется только залить прошивку и отзвонить заказчику о работоспособном макете.
Не тут то было. Я не нашел практически ничего полезного, но благодаря этому чуть лучше разобрался в работе таймеров STM32, и теперь могу поделится этим с другими!


Читать дальше..

Управление сервомашинкой из Cubieboard2

Продолжая тему разработки модулей ядра сегодня посмотрим на использование таймеров и прерываний. Это пожалуй 2 наиболее специфичные функции, которые умеет микроконтроллер и обычно недоступны при разработке классического приложения для ОС Linux(да и Windows тоже), а при работе с внешними устройствами эти функции очень нужны. В качестве примера — управление сервомашинкой и кино в жанре «прибытие поезда».

Читать дальше
  • +12
  • 08 августа 2014, 23:42
  • kest

8L-Курс, Часть 5 - Таймеры: начало

← Часть 4 — Тактирование Содержание Часть 6 — Таймеры, внешние каналы →

Таймеры — один из самых важных элементов МК. Ни одна более-менее сложная программа не обходится без них. Все, что так или иначе связано с временными интервалами или подсчетом каких-нибудь событий, реализуется на таймерах.

В STM8L есть несколько таймеров разной сложности. Их можно поделить на три группы:
TIM1 — Это самый сложный и функциональный таймер. 16и разрядный счетчик (максимальное значение — 65535), предделитель, принимающий любые значения от 1 до 65536. Три внешних канала с комплементарными выводами для каждого… и прочие плюшки.
TIM2, TIM3, TIM5(последнего в нашем МК нет) — Чуть по-проще. Внешних каналов всего два. Делитель принимает уже не любое значение, а только степени двойки в диапазоне от 1 до 128. Счетчик по-прежнему 16и разрядный.
TIM4 — Самый простой. 8и разрядный счетчик, делитель — (тоже степени двойки) от 1 до 32768. Внешних каналов нету.

Вот сводная табличка из reference manual, которая рассказывает о характеристиках всех таймеров:


Начнем с TIM1. Он конечно сложнее, чем все остальные, но зато после него работа с другими таймерами не будет вызывать непоняток.


Читать дальше

Частотомер до 1ГГц на STM32

Была необходимость померять частоту около 137МГц, частотомер на такую частоту найти не получилось, ну и решил я сваять свой частотомер с блекджеком и шлюхоми. Посёрфил по просторам интернета, ну типо изучил предметную область, мне подвернулась идея применить делитель частоты. Существует множество проектов измерения частоты на AVR и PIC, а вот на STM мне ни одного и не попалось. Почему я не взял PIC и не использовал готовый проект? Потому что нет отладчика для PIC, использую в основном STM, и есть на чём лепить и экспериментировать.

Делитель частоты



Читать дальше