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();
 }

}

 

posted on 2016-07-07 17:40  gary_123  阅读(720)  评论(0编辑  收藏  举报

导航