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   gary_123  阅读(722)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示