сайт для палких паяльників

TIM

STM32. SysTick

STM32. SysTick (на русском языке)

Системний таймер STM32 SysTick

STM32 має системний таймер SysTick. Це найпростіший лічильник з автоматичним завантаженням початкового значення при досягненні лічильником 0. Кожен раз, коли лічильник досягає нуля викликається переривання. Для обробки переривання потрібно написати обробник SysTick_Handler. Ось все що вміє робити цей таймер. Проте він досить часто використовується для виконання різних завдань. У цій статті ми задіємо його для реалізації простої затримки.

Читати далі

STM32. SysTick

Системный таймер STM32 SysTick

У микроконтроллеров STM32 есть системный таймер SysTick. Это простейший вычитающий счетчик с автоматической загрузкой начального значения при достижении счетчиком 0. Каждый раз, когда счетчик достигает нуля вызывается прерывание. Для обработки прерывания потребуется описать обработчик SysTick_Handler. Вот и все что умеет делать этот таймер. Тем не менее он достаточно часто применяется для решения различных задач. В этой статье мы задействуем его для реализации простой задержки.

Читати далі

14. STM32. Программирование STM32F103. RTC

Часы реального времени (RTC)

У STM32 есть встроенные часы реального времени. Они могут работать независимо от основного питания микроконтроллера. Для работы встроенных часов на специальный вывод надо подать питание напряжением 3В. Например, подключить батарейку CR2032. Такие батарейки используют в часах, в компьютерах на материнских платах, и в других приборах. Часы потребляет очень мало энергии, поэтому батарейки хватает на длительное время. Также часы могут работать как будильник – формировать сигнал на одном из выходов или выводить микроконтроллер из режима энергосбережения. Сначала мы запустим часы и настроим таким образом, чтобы они считал секунды и продолжали работать после отключения основного питания микроконтроллера. Будильник будет рассматриваться позже.

Читати далі

14. STM32. Програмування STM32F103. RTC

14. STM32. Программирование STM32F103. RTC
(на русском языке)

Годинник реального часу (RTC)

STM32 мають вбудований годинник реального часу. Він може працювати незалежно від основного живлення мікроконтролера. Для роботи вбудованого годинника до спеціального виводу треба підключити живлення напругою 3В. Наприклад, батарейку CR2032. Такі батарейки використовують у годинниках, у комп’ютерах на материнських платах, та в інших приладах. Годинник споживає дуже мало енергії, тому батарейки вистачає на тривалий час. Також годинник може працювати як будильник – формувати сигнал на одному з виходів або виводити мікроконтролер з режиму енергозбереження. Спочатку ми запустимо годинник і налаштуємо таким чином, щоб він рахував секунди і продовжував працювати після відключення основного живлення мікроконтролера. Будильник розглянемо пізніше.

Читати далі

12. STM32. Программирование STM32F103. TIMER. PWM

В предыдущих статьях мы познакомились с тем, как таймеры могут захватывать входной сигнал. Таймеры микроконтроллера STM32 также могут формировать выходные сигналы. Сегодня мы познакомимся с PWM или ШИМ сигналом на примерах.

Инициализация PWM выполняется следующим образом:

  • настраивается выход порта соответствующего канала таймера, который будет задействован для формирования PWM сигнала
  • выполняются базовые настройки таймера
  • выполняется настройка OC канала таймера (настройка параметров PWM)
  • включается таймер

Читати далі

12. STM32. Програмування STM32F103. TIMER. PWM

12. STM32. Программирование STM32F103. TIMER. PWM
(на русском языке)

У попередніх статтях ми познайомились з тим, як таймери можуть захоплювати вхідний сигнал. Таймери мікроконтролера STM32 також можуть формувати вихідні сигнали. Сьогодні ми познайомимося з PWM або ШІМ сигналом на прикладах.

Ініціалізація PWM виконується наступним чином:

  • налаштовується вихід порту відповідного каналу таймера, який буде задіяний для формування PWM сигналу
  • виконуються базові налаштування таймера
  • виконується налаштування OC каналу таймера (налаштування параметрів PWM)
  • вмикається таймер

Читати далі

11. STM32. Программирование STM32F103. TIMER. Encoder

Еще одна полезная функция таймера – возможность работы с инкрементными (квадратурными) энкодерами. Мы настроим таймер таким образом, чтобы он обрабатывал сигналы с двух своих входных каналов и менял свой счетчик в указанных пределах. То есть, когда мы будем вращать энкодер в одном направлении, счетчик таймера будет увеличиваться, в обратном – уменьшаться. В примере мы установим TIM_Period = 100. Это значит, что счетчик таймера будет уменьшаться или увеличиваться в зависимости от направления вращения энкодера в этих пределах. При прямом вращении энкодера, когда счетчик досчитает до 100, он перепрыгнет на 0. При обратном направлении, когда счетчик уменьшится до нуля, он автоматически перепрыгнет на 100. Нам больше ничего не придется контролировать, только считывать счетчик таймера. В следующем примере программа периодически опрашивает счетчик таймера и отправляет его значение в последовательный порт USART.

Читати далі

11. STM32. Програмування STM32F103. TIMER. Encoder

11. STM32. Программирование STM32F103. TIMER. Encoder
(на русском языке)

Ще одна корисна функція таймера – робота з інкрементними (квадратурними) енкодерами. Ми налаштуємо таймер таким чином, щоб він обробляв сигнали з двох своїх вхідних каналів і змінював свій лічильник у зазначених межах. Тобто, коли ми будемо обертати енкодер в одному напрямку, лічильник таймера буде збільшуватися, в зворотньому – зменшуватися. У прикладі ми встановимо TIM_Period = 100. Це значить, що лічильник таймера буде зменшуватися або збільшуватися в залежності від напрямку обертів енкодера у цих межах. При прямому обертанні енкодера, коли лічильник дорахує до 100, він перестрибне на 0. При зворотньому напрямку, коли лічильник зменшиться до нуля, автоматично перестрибне на 100. Нам більше нічого не доведеться контролювати, лише зчитувати лічильник таймера. У наступному прикладі програма періодично опитує лічильник таймера і відправляє його значення у послідовний порт USART.

Читати далі

10. STM32. Программирование STM32F103. TIMER. Захват сигнала

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

Читати далі

10. STM32. Програмування STM32F103. TIMER. Захоплення сигналу

10. STM32. Программирование STM32F103. TIMER. Захват сигнала
(на русском языке)

Однією з типових задач для мікроконтролера є обробка вхідних сигналів. У STM32 з цією задачею досить вправно справляються таймери загального призначення. Але, перш ніж перейти до розглядання теми захоплення сигналу таймером, спочатку розглянемо ще один приклад, який є продовженням попередньої статті.

Читати далі

9. STM32. Программирование STM32F103. TIMER

Таймеры общего назначения

Таймеры в микроконтроллерах STM32 делятся по функционалу на:

  1. basic timers (базовые таймеры)
  2. general-purpose timers (общего назначения: TIM2, TIM3, TIM4)
  3. advanced-control timers (продвинутые таймеры: TIM1)

В различных микроконтроллерах количество таймеров разная. Согласно документации к контроллеру STM32F103C8 имеем 3 таймера general-purpose, и один advanced-control.
Читати далі

9. STM32. Програмування STM32F103. TIMER

9. STM32. Программирование STM32F103. TIMER
(на русском языке)

Таймери загального призначення

Таймери у мікроконтролерах STM32 поділяються за функціоналом на:

  1. basic timers (базові таймери)
  2. general-purpose timers (загального призначення: TIM2, TIM3, TIM4)
  3. advanced-control timers (продвинуті таймери: TIM1)

У різних мікроконтролерах кількість таймерів різна. Згідно документації до контролера STM32F103C8 маємо 3 таймера general-purpose, і один advanced-control.

Читати далі

Translate
Архіви

© 2011-2018 Андрій Корягін, Кременчук - Київ, Україна