发 帖  
原厂入驻New

[经验] stm8s单片机pwm的配置方法

2020-9-1 16:50:35  83 STM8S PWM技术
分享
0
  在讲述之前,我们可以先简要了解pwm技术的用途。不说多的,我们用途比较广的首先可以是呼吸灯的制作,其次可用来给蜂鸣器发声使用,再有可以用作舵机控制,这些都是比较常见的用途。
  那么我们如何进行配置使CPU输出pwm波形呢?我们可以了解一下datasheet介绍,如图1。
  
  图1 tiM1高级定时器的功能
  stm8s的pwm功能可由其高级定时器TIM1配置输出。TIM1有四个输出通道,我们选择其中一路TIM1-CH4,默认情况下,其对应的CPU端口在PC4,如图2 AFR7位。
  
  图2 TIM1映射端口
  接下来我们通过软件编程介绍一下TIM1的pwm技术(假设我们主时钟使用8M)。
  #define BIT(n) (1《《(n))
  //(1)设置端口P4
  GPIOC-〉DDR |= 0X10; //PC4设输出模式
  GPIOC-〉CR1 |= 0X01; // PC4设为推挽输出
  GPIOC-〉CR2 = 0X0;
  //(2)设置TIM1
  TIM1-〉CR1 &= ~BIT(0); //关闭TIM1
  TIM1-〉PSCRH = 0;
  TIM1-〉PSCRL = 0x40; //64分频 8M/64=0.125M
  TIM1-〉ARRH = 0Xf4;
  TIM1-〉ARRL = 0X23; //0.125MHz/(62499+1) = 2Hz
  TIM1-〉CR1 |= BIT(7); //使能ARP,边沿对齐,向上计数
  TIM1-〉EGR |= BIT(0); //更新TIM1,使PSC有效
  TIM1-〉EGR|=0x20;//重新初始化TIM1
  TIM1-〉CCR4H = 0X7a;
  TIM1-〉CCR4L = 0X12; //占空比50%
  TIM1-〉CCMR4 = 0X68; //配置TIM1_CH4为PWM1模式输出
  TIM1-〉CCER2 |= BIT(4); //Enable TIM1_CH4 channel
  TIM1-〉BKR |= BIT(7);
  TIM1-〉CR1 |= BIT(0); //使能TIM1
  通过以软件配置,使得CPU输出pwm波形。

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发经验
关闭

站长推荐 上一条 /8 下一条

快速回复 返回顶部 返回列表