Инициализация таймера 1986ВЕ9X с запросом АЦП
| |Си| | ||
| в палитре | на схеме |
Блок реализует настройку широтно-импульсной модуляции с использованием аппаратных таймеров микроконтроллера, тактируемых импульсами определенной частоты CLK. Существует возможность по истечению периода ШИМ произвести опрос АЦП, для этого необходимо заблаговременно настроить контроллер АЦП. Программная реализация блока, расположена в заголовочном файле timer.h (функция Init_PWM_Timer) файла main.c проекта Test_Driver (в среде разработки Keil), который создается при генерации кода проекта и содержит тексты программ алгоритма на языке СИ. Можно использовать для программирования двух типов микропроцессоров 1986BE1T и 1986BE9X. Основные характеристики контроллера DMA приведены в спецификациях 1986BE1T.pdf и 1986BE9X.pdf.
Входные порты
- on - включение таймера;
- init_port - инициализация каналов таймера;
- sort_block - необходим для определения порядка выполнения блока.
Выходные порты
Блок не имеет выходных портов.
Свойства
| Название | Имя | Описание | По умолчанию |
| Номера каналов | CHANNELS |
Каналы таймера см. спецификацию 1986BE1T.pdf, 1986BE9X.pdf |
|
| Предделитель частоты |
PSG
|
см. спецификацию 1986BE1T.pdf, 1986BE9X.pdf | 0 |
|
Формат выработки сигнала REF в режиме ШИМ
|
pwm_mode
|
см. спецификацию 1986BE1T.pdf, 1986BE9X.pdf | 6 |
| Период ШИМ |
PWM_Period
|
см. спецификацию 1986BE1T.pdf, 1986BE9X.pdf | 800 |
| Таймер | NUM |
Выбор таймера (Timer1, Timer2, Timer3, Timer4 ) см. спецификацию 1986BE1T.pdf, 1986BE9X.pdf Примечание! У микропроцессора 1986BE9X нет TIMER4 |
TIMER1 |
| Канал1 | |||
|
Заполнение импульса Канала 1
|
CCR1
|
см. спецификацию 1986BE1T.pdf, 1986BE9X.pdf | 0 |
|
Основной делитель частоты DTG 1
|
DTG_k1
|
см. спецификацию 1986BE1T.pdf, 1986BE9X.pdf | 0 |
|
Дополнительный делитель частоты DTGx 1
|
DTGx_k1
|
см. спецификацию 1986BE1T.pdf, 1986BE9X.pdf | 0 |
| Канал2 | |||
|
Заполнение импульса Канала 2
|
CCR2
|
см. спецификацию 1986BE1T.pdf, 1986BE9X.pdf | 0 |
|
Основной делитель частоты DTG 2
|
DTG_k2
|
см. спецификацию 1986BE1T.pdf, 1986BE9X.pdf | 0 |
|
Дополнительный делитель частоты DTGx 2
|
DTGx_k2
|
см. спецификацию 1986BE1T.pdf, 1986BE9X.pdf | 0 |
| Канал3 | |||
|
Заполнение импульса Канала 3
|
CCR3
|
см. спецификацию 1986BE1T.pdf, 1986BE9X.pdf | 0 |
|
Основной делитель частоты DTG 3
|
DTG_k3
|
см. спецификацию 1986BE1T.pdf, 1986BE9X.pdf | 0 |
|
Дополнительный делитель частоты DTGx 3
|
DTGx_k3
|
см. спецификацию 1986BE1T.pdf, 1986BE9X.pdf | 0 |
| Канал4 | |||
|
Заполнение импульса Канала 4
|
CCR4
|
см. спецификацию 1986BE1T.pdf, 1986BE9X.pdf | 0 |
|
Основной делитель частоты DTG 4
|
DTG_k4
|
см. спецификацию 1986BE1T.pdf, 1986BE9X.pdf | 0 |
|
Дополнительный делитель частоты DTGx 4
|
DTGx_k4
|
см. спецификацию 1986BE1T.pdf, 1986BE9X.pdf | 0 |
|
Прерывания
|
|||
|
Включить прерывание по CNT=0
|
IntrCNT
|
По окончанию периода ШИМ прерывание см. спецификацию 1986BE1T.pdf, 1986BE9X.pdf |
Да |
|
Включить прерывание по CNT=ARR
|
IntrARR
|
прерывание см. спецификацию 1986BE1T.pdf, 1986BE9X.pdf |
Нет |
|
Приоритет прерывания
|
PRI
|
см. спецификацию 1986BE1T.pdf, 1986BE9X.pdf | 0 |
|
Режим основного счетчика
|
Centr_PWM
|
см. спецификацию 1986BE1T.pdf, 1986BE9X.pdf | Нет |
| Использовать опрос АЦП каналов | ON_ADC | По истечению периода ШИМ производить опрос АЦП? | Нет |
| Контроллер АЦП | ADC | Выбор АЦП1 или АЦП2, для 1986BE1T только АЦП1 | ADC1 |
|
Уменьшение значения счетчика периодов ШИМ заданного с помощью функции DelayTimer_pwm() (задержка выполнения на заданное число периодов ШИМ) в основном потоке функции main(). Вызов этой функции происходит после выполнения алгоритма главного цикла программы, таким образом реализуется циклическая работа алгоритма
|
DelayPWM
|
В основном цикле программы поток будет находится в состоянии ожидания при вызове функции DelayTimer_pwm(counts_pwm) пока заданное значение периодов ШИМ (counts_pwm) не будет равным 0, уменьшение счетчика периодов ШИМ будет происходить в обработчике прерываний истечения периода ШИМ | Нет |
|
Алгоритм регулирования
|
|||
|
Вызов расчетного алгоритма
|
NameAlg
|
По истечения периода ШИМ в процедуре обработки прерывания происходит вызов алгоритма NameAlg. При генерации кода СИ нескольких проектов функция алгоритма одного из проектов может быть вызвана в обработчике прерывания, таким образом реализуется совместная работа алгоритмов с разной степенью дискретизации | Нет |
|
Разрешить прерывание DMA по прохождению периода
|
CNT_ARR
|
После истечения периода ШИМ таймера происходит запрос к контроллеру DMA см. спецификацию 1986BE1T.pdf, 1986BE9X.pdf |
Нет |
Параметры
Блок не имеет параметров.