blogernice

PWM输出

周期由自动重装载寄存器ARR寄存器来决定的,捕获/比较寄存器CCRx来决定占空比!!!

工作过程描述:首先假设输出为向上计数,且设置CC1P位为0高电平有效,当设置为模式1,即计数器CNT的数值小于捕获比较寄存器CCR1的值时,电平输出高电平,CNT数值大于CCR1时输出低电平,使能CC1E,最后就输出相应电平信号。

 bsp_pwm_out.c文件

bsp_pwm_out.h文件

main.c文件

void PWM_OUT_POWDER_CONTROL(void)
{
 u16 ledOpvmval = 0;
 u8 dir =1;
 while(1)//实现比较值从0-300递增,到300后从300-0递减,循环
 {
  delay(10);
  if(dir)
   ledOpvmval++;//dir==1 ledOpwmval递增
  else
   ledOpvmval--;//dir==0 ledOpwmval递减
  if(ledOpvmval >300)
   dir = 0;     //ledOpvmval到达300后,方向为递减
  if(ledOpvmval==0)
   dir = 1;     //ledOpvmval递减到0后,方向改为递增
  TIM_SetCompare1(TIM14,ledOpvmval);
 }
}

int main()

{

TIM14_PWM_Init(500-1,84-1);//84M/84=1MHZ的计数频率,重载值500,所以PWM频率为1M/500=2KHZ,


 while(1)
 { 
   PWM_OUT_POWDER_CONTROL();
 }

}

 

分类:

技术点:

相关文章:

  • 2021-12-04
  • 2021-11-29
  • 2021-09-17
  • 2021-07-03
  • 2021-05-04
  • 2021-07-17
  • 2021-05-06
  • 2021-09-20
猜你喜欢
  • 2021-12-14
  • 2021-07-23
  • 2021-10-06
  • 2021-10-28
  • 2021-05-21
  • 2021-08-17
相关资源
相似解决方案