Тег: tim
25. STM32. SysTick

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

Годинник реального часу (RTC)
STM32 мають вбудований годинник реального часу. Він може працювати незалежно від основного живлення мікроконтролера. Для роботи вбудованого годинника до спеціального виводу треба підключити живлення напругою 3В. Наприклад, батарейку CR2032. Такі батарейки використовують у годинниках, у комп`ютерах на материнських платах, та в інших приладах. Годинник споживає дуже мало енергії, тому батарейки вистачає на тривалий час. Також годинник може працювати як будильник - формувати сигнал на одному з виходів або виводити мікроконтролер з режиму енергозбереження. Спочатку ми запустимо годинник і налаштуємо таким чином, щоб він рахував секунди і продовжував працювати після відключення основного живлення мікроконтролера. Будильник розглянемо пізніше.
11. STM32. Програмування STM32F103. TIMER. Encoder

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

У попередніх статтях ми познайомились з тим, як таймери можуть захоплювати вхідний сигнал. Таймери мікроконтролера STM32 також можуть формувати вихідні сигнали. Сьогодні ми познайомимося з PWM або ШІМ сигналом на прикладах.
Ініціалізація PWM виконується наступним чином:
- налаштовується вихід порту відповідного каналу таймера, який буде задіяний для формування PWM сигналу
- виконуються базові налаштування таймера
- виконується налаштування OC каналу таймера (налаштування параметрів PWM)
- вмикається таймер
10. STM32. Програмування STM32F103. TIMER. Захоплення сигналу

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

Таймери загального призначення
Таймери у мікроконтролерах STM32 поділяються за функціоналом на:- basic timers (базові таймери)
- general-purpose timers (загального призначення: TIM2, TIM3, TIM4)
- advanced-control timers (продвинуті таймери: TIM1)
Недавні записи
- CRSF to PWM
- U-FOC PC Monitor для Chrome browser
- Фільтрація Back-EMF. Безсенсорні BLDC мотори
- Text to speech. Українська мова
- LCD Display ST7567S (IIC)
- Розпізнавання мови (Speech recognition)
- Selenium
- Комп'ютерний зір (Computer Vision)
- Деякі думки про точність вимірювань в електроприводі
- Датчики Холла 120/60 градусів
Tags
bluetooth bldc nodemcu tim max1674 eeprom led avr hih-4000 brushless programmator mpu-6050 usart examples smd sensors piezo rs-232 motor html git meteo bme280 gps bkp encoder java-script raspberry-pi websocket esp8266 books solar eb-500 atmega mongodb gpio sms css pwm ethernet pmsm st-link capture dma stm32 watchdog lcd rfid python uart battery dc-dc soldering timer ssd1331 wifi nvic dht11 docker i2c 3d-printer adc bmp280 flash rtc servo barometer remap exti mpx4115a web flask ngnix usb displays foc ssd1306 mpu-9250 options
Архіви