not work PWM

General discussion on mikroPascal PRO for ARM.
Post Reply
Author
Message
serg1980
Posts: 44
Joined: 19 Mar 2014 05:58

not work PWM

#1 Post by serg1980 » 28 Jul 2023 09:50

Hi!
why is the fourth PWM channel not working?
stm32F100C4

Code: Select all

 GPIO_Alternate_Function_Enable(@_GPIO_MODULE_TIM2_CH4_PB11);
 ....
 
 PWM_TIM2_Init(50);
 PWM_TIM2_Start(_PWM_CHANNEL4, @_GPIO_MODULE_TIM2_CH4_PB11);
 PWM_TIM2_Start(_PWM_CHANNEL1, @_GPIO_MODULE_TIM2_CH1_PA0);
 PWM_TIM2_Start(_PWM_CHANNEL2, @_GPIO_MODULE_TIM2_CH2_PA1);
 PWM_TIM2_Set_Duty(4500,_PWM_NON_INVERTED, _PWM_CHANNEL1);
 PWM_TIM2_Set_Duty(MinLDrop_PWM,_PWM_NON_INVERTED, _PWM_CHANNEL2);
 PWM_TIM2_Set_Duty(MinRDrop_PWM,_PWM_NON_INVERTED, _PWM_CHANNEL4);

serg1980
Posts: 44
Joined: 19 Mar 2014 05:58

Re: not work PWM

#2 Post by serg1980 » 28 Jul 2023 13:45

If you do initialization only for the fourth PWM channel, then everything works. But as I add the first pwm channel and the second pwm channel, the fourth pwm channel does not work

Code: Select all

//works
 PWM_TIM2_Init(50);
 PWM_TIM2_Start(_PWM_CHANNEL4, @_GPIO_MODULE_TIM2_CH4_PB11);
 PWM_TIM2_Set_Duty(MinRDrop_PWM,_PWM_NON_INVERTED, _PWM_CHANNEL4);

Code: Select all

//does not work
 PWM_TIM2_Init(50);
 PWM_TIM2_Start(_PWM_CHANNEL4, @_GPIO_MODULE_TIM2_CH4_PB11);
 PWM_TIM2_Start(_PWM_CHANNEL1, @_GPIO_MODULE_TIM2_CH1_PA0);
 PWM_TIM2_Start(_PWM_CHANNEL2, @_GPIO_MODULE_TIM2_CH2_PA1);
 PWM_TIM2_Set_Duty(4500,_PWM_NON_INVERTED, _PWM_CHANNEL1);
 PWM_TIM2_Set_Duty(MinLDrop_PWM,_PWM_NON_INVERTED, _PWM_CHANNEL2);
 PWM_TIM2_Set_Duty(MinRDrop_PWM,_PWM_NON_INVERTED, _PWM_CHANNEL4);

serg1980
Posts: 44
Joined: 19 Mar 2014 05:58

Re: not work PWM

#3 Post by serg1980 » 28 Jul 2023 14:44

it turned out to run all the pwm channels adding two lines of code. It turns out that the procedure "PWM_TIM2_Start" changes something inside

Code: Select all

 
 PWM_TIM2_Init(50);
 PWM_TIM2_Set_Duty(4500,_PWM_NON_INVERTED, _PWM_CHANNEL1);
 PWM_TIM2_Set_Duty(MinLDrop_PWM,_PWM_NON_INVERTED, _PWM_CHANNEL2);
 PWM_TIM2_Set_Duty(MinRDrop_PWM,_PWM_NON_INVERTED, _PWM_CHANNEL4);
 PWM_TIM2_Start(_PWM_CHANNEL4, @_GPIO_MODULE_TIM2_CH4_PB11);
 PWM_TIM2_Start(_PWM_CHANNEL1, @_GPIO_MODULE_TIM2_CH1_PA0);
 PWM_TIM2_Start(_PWM_CHANNEL2, @_GPIO_MODULE_TIM2_CH2_PA1);

 TIM2_REMAP0_bit:=0;
 TIM2_REMAP1_bit:=1;
 

Post Reply

Return to “mikroPascal PRO for ARM General”