Тег: 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)
Tags
timer meteo pwm capture dma smd brushless sensors 3d-printer examples sms git st-link adc rfid exti web bme280 bmp280 gps options barometer battery lcd dht11 hih-4000 atmega dc-dc piezo solar bluetooth displays mpx4115a bldc websocket eb-500 motor raspberry-pi usb rtc usart max1674 avr soldering mongodb esp8266 programmator mpu-6050 remap rs-232 pmsm bkp gpio i2c eeprom encoder stm32 css docker flask nodemcu ssd1331 tim flash servo nvic ssd1306 mpu-9250 ethernet led foc python ngnix watchdog books html java-script wifi uart
Архіви