- Павел Иванов
- Статьи
- Просмотров: 754
Уроки программирования STM8. Урок 9. STVD + CXSTM8. Основы работы с таймером TIM4
В данном уроке вы освоите основы работы с таймером TIM4 и пройдете небольшую практику. Суть практической работы заключается в том, чтобы как и в самом начале поморгать светодиодом. Резонно назвать этот практикум "Hello, LED-2". В отличие от первого примитивного примера, где задержка (пауза) осуществлялась зависанием микроконтроллера на количество заданных итераций, здесь микроконтроллер зависать не будет. Он будет "слушать" события. Таймер будет создавать эти события в строго определенный промежуток времени. И по возникновении событий можно будет менять состояние линии порта, на которой висит светодиод. По-прежнему я использую отладочную плату "синяя пуля оптовых оценка STM8 доска" и данный пример будет работать вообще на любом STM8 линеек Value и Acces line.
Подробнее: Уроки программирования STM8. Урок 9. STVD + CXSTM8. Основы работы с таймером TIM4

В предыдущем занятии мы создали обработчик прерывания IRQ22, для этого понадобилось создать взаимосвязь между таблицей векторов прерываний и кодом основной программы. Таким связующим звеном послужил файл main.h, в котором был определен прототип функции ADC_int_handler - которая и является обработчиком прерывания. Алгоритм работы функции был помещен в main.c, а ссылку на функцию я вписал в таблицу векторов из файла stm8_interrupt_vector.c.
Аналого-цифровой преобразователь STM8 способен перевести аналоговое значение в цифровое с точностью в 10 бит, или с погрешностью в 0,097%. При максимальном уровне сигнала 3.3V, шаг дискретизации будет 3,2 мВ (соответственно, напряжение на входе можно определить с точностью до 3,2 мВ).
В микроконтроллерах STM8S обычных линеек, установлен аналогово-цифровой преобразователь с разрядностью (точностью) 10 бит. Конкретно в STM8S103F3T6 имеется 5 аналоговых линий AIN2-AIN6, способных преобразовывать напряжение в диапазоне от 0 до Vdd. Отладочная плата Blue pill, используемая в этой практике, питает процессор напряжением 3,3V. Соответственно на аналоговую линию можно подавать напряжение в диапазоне от 0 до 3.3V.