STM8S TIM1 PWM初始化设置

发布者:binggege最新更新时间:2020-02-14 来源: eefocus关键字:STM8S  TIM1  PWM  初始化设置 手机看文章 扫描二维码
随时随地手机看文章
  1. #define TIM1_DIV1 (uint16)(1-1)

  2. #define TIM1_DIV2 (uint16)(2-1)

  3. #define TIM1_DIV4 (uint16)(4-1)

  4. #define TIM1_DIV8 (uint16)(8-1)

  5. #define TIM1_DIV16 (uint16)(16-1)

  6. #define TIM1_DIV32 (uint16)(32-1)

  7. //timer1 PWM 输出到管脚使能

  8. _Bool   PWMAOUT_PINENBLE  @TIM1_CCER1:0 ;//TIM1_CH1 -- PC6

  9. _Bool   PWMBOUT_PINENBLE  @TIM1_CCER1:4 ;//TIM1_CH2 -- PC7

  10. _Bool   PWMCOUT_PINENBLE  @TIM1_CCER2:0 ;//TIM1_CH3 -- PC3

  11. // PWM 频率设定

  12. #define V_PWMFRE  1000

  13. #define ToCMPxH(CMP,Value) (CMP = (uint8)((Value >> 8 ) & 0xFF))

  14. #define ToCMPxL(CMP,Value) (CMP = (uint8)(Value & 0xFF))

  15. //*************************************

  16. // 函数名称:Init_Timer1_PWM

  17. // 函数功能:定时器1作PWM输出时初始化

  18. // 入口参数:PWM等级 每级0.625U (1000*0.625 = 62.5U = 8K)

  19. // 出口参数:无

  20. // 此初始化设置应用在BLDC 三相PWM输出

  21. //***************************************

  22. void Init_Timer1_PWM(uint16 Tcon,uint16 Pscr)

  23. {

  24. //16M系统时钟经预分频f=fck/(PSCR+1)  

  25. TIM1_PSCRH = (Pscr >> 8) & 0xff ;

  26. TIM1_PSCRL = Pscr & 0xff ;

  27. //设定重装载时的寄存器值,255是最大值

  28. TIM1_ARRH = (Tcon >> 8) & 0xff ;

  29. TIM1_ARRL = Tcon & 0xff ;

  30. //设置刹车寄存器

  31. TIM1_BKR|=0X80 ;

  32. //PWM1模式,TIM1_CNT

  33. TIM1_CCMR1 =0x6C ;

  34. //PWM1模式,TIM1_CNT

  35. TIM1_CCMR2 =0x6C ;

  36. //PWM1模式,TIM1_CNT

  37. TIM1_CCMR3 =0x6C ;

  38. //冻结模式,TIM1_CNT

  39. TIM1_CCMR4 =0x08 ;

  40. //PWM 占空比 清0

  41. TIM1_CCR1H = 0;

  42. TIM1_CCR1L = 0;

  43. TIM1_CCR2H = 0;

  44. TIM1_CCR2L = 0;

  45. TIM1_CCR3H = 0;

  46. TIM1_CCR3L = 0;

  47. TIM1_EGR = 0X01 ; //UG = 1 ;初始化计数器 预装载载入影子寄存器中

  48. TIM1_CNTRH = 0 ;  //计数器清0

  49. TIM1_CNTRL = 0 ;

  50. TIM1_CR1 |= 0X01;  // 计数器使能,开始计数

  51. }

  52. //*************************************

  53. // 函数名称:TOPWMVALUE

  54. // 函数功能:设置PWM占空比

  55. // 入口参数:占空比值

  56. // 出口参数:无

  57. //***************************************

  58. void TOPWMVALUE(uint16 OUT_PWM)

  59. {

  60. ToCMPxH(TIM1_CCR1H,OUT_PWM);

  61. ToCMPxL(TIM1_CCR1L,OUT_PWM);

  62. ToCMPxH(TIM1_CCR2H,OUT_PWM);

  63. ToCMPxL(TIM1_CCR2L,OUT_PWM);

  64. ToCMPxH(TIM1_CCR3H,OUT_PWM);

  65. ToCMPxL(TIM1_CCR3L,OUT_PWM);

  66. }

  67. //----实例应用------

  68. //定时器1初始化

  69. Init_Timer1_PWM(V_PWMFRE,TIM1_DIV2) ;//16M/2=8M   设置8K PWM输出


关键字:STM8S  TIM1  PWM  初始化设置 引用地址:STM8S TIM1 PWM初始化设置

上一篇:STM8 tim1 ch1 PWM输出
下一篇:stm8s103单片机输出PWM波程序

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved