Инструменты пользователя

Инструменты сайта


ob:o7:pwm

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
ob:o7:pwm [2022/02/04 18:21]
iadenisov
ob:o7:pwm [2022/02/04 18:27] (текущий)
iadenisov
Строка 1: Строка 1:
 ====== Пример модуля для аппаратного ШИМ для процессоров STM32F4 ====== ====== Пример модуля для аппаратного ШИМ для процессоров STM32F4 ======
  
-Программа формирует на выводах A0,A1,A2,A3 широтно-импульную модуляцию различной скважности.+Программа формирует на выводах A0, A1, A2, A3 широтно-импульную модуляцию различной скважности.
  
 <code> <code>
Строка 89: Строка 89:
  BEGIN  BEGIN
  ASSERT(chn >= 0);  ASSERT(chn >= 0);
- ASSERT(chn < 3);  (* ASSERT(chn < 4); BLOCKED *) + ASSERT(chn < 4);
  ASSERT(pos >= 0);  ASSERT(pos >= 0);
  ASSERT(pos < positions);  ASSERT(pos < positions);
Строка 327: Строка 327:
  PinCfg.Configure(PinCfg.A, 2,  PinCfg.Configure(PinCfg.A, 2,
  PinCfg.alt, PinCfg.pushPull, PinCfg.low, PinCfg.noPull, PinCfg.AF2);  PinCfg.alt, PinCfg.pushPull, PinCfg.low, PinCfg.noPull, PinCfg.AF2);
- (* BLOCKED 
  PinCfg.Configure(PinCfg.A, 3,  PinCfg.Configure(PinCfg.A, 3,
  PinCfg.alt, PinCfg.pushPull, PinCfg.low, PinCfg.noPull, PinCfg.AF2);  PinCfg.alt, PinCfg.pushPull, PinCfg.low, PinCfg.noPull, PinCfg.AF2);
- *) 
   
  (* timer setup *)  (* timer setup *)
Строка 370: Строка 368:
  SetTIM5(1, positions DIV 2);  SetTIM5(1, positions DIV 2);
  SetTIM5(2, positions DIV 2);  SetTIM5(2, positions DIV 2);
- (*  BLOCKED 
  SetTIM5(3, positions DIV 2);  SetTIM5(3, positions DIV 2);
- *)+
  (* PWM mode 1, enable CCRx preloading *)  (* PWM mode 1, enable CCRx preloading *)
  SYSTEM.PUT(MCU.TIM5CCMR1, {OC1PE,5,6,OC2PE,8+5,8+6});  SYSTEM.PUT(MCU.TIM5CCMR1, {OC1PE,5,6,OC2PE,8+5,8+6});
ob/o7/pwm.1643988098.txt.gz · Последнее изменение: 2022/02/04 18:21 — iadenisov