找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4173|回复: 0
打印 上一主题 下一主题
收起左侧

自己写的STM8S PWM输出程序 用的是TIM1中间对齐方式

[复制链接]
跳转到指定楼层
楼主
用的是TIM1 中间对齐方式


单片机源程序如下:
  1. /*边沿对齐PWM CH1输出*/
  2. /*注意:LCD R/W引脚需要硬件接地 若要软件接地则GPIO初始化内定义*/

  3. #include"iostm8s208mb.h"

  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. #define ulong unsigned long

  7. void delay(uint z) //约1ms延时
  8. {
  9.   uint i,j;
  10.   while (z--)
  11.   {
  12.     for(i=0;i<50;i++)
  13.       for(j=0;j<20;j++);
  14.   }
  15. }

  16. void CH1_PWM_SET(ulong SET_CH1,float Duty_CH1)//改变占空比
  17. {
  18.   float a;
  19.   a=Duty_CH1*SET_CH1;
  20.   TIM1_CCR1H=((uint)(a))/256;
  21.   TIM1_CCR1L=((uint)(a))%256;
  22.   TIM1_CCMR1|=0x60;
  23.   TIM1_CCER1&=0xfd;
  24.   TIM1_CCER1|=0x01;
  25.   TIM1_OISR|=0x01;
  26. }

  27. void CH2_PWM_SET(ulong SET_CH2,float Duty_CH2)//改变占空比
  28. {
  29.   float a;
  30.   a=Duty_CH2*SET_CH2;
  31.   TIM1_CCR2H=((uint)(a))/256;
  32.   TIM1_CCR2L=((uint)(a))%256;
  33.   TIM1_CCMR2|=0x60;
  34.   TIM1_CCER1&=0xdf;
  35.   TIM1_CCER1|=0x10;
  36.   TIM1_OISR|=0x04;
  37. }

  38. void CH3_PWM_SET(ulong SET_CH3,float Duty_CH3)//改变占空比
  39. {
  40.   float a;
  41.   a=Duty_CH3*SET_CH3;
  42.   TIM1_CCR3H=((uint)(a))/256;
  43.   TIM1_CCR3L=((uint)(a))%256;
  44.   TIM1_CCMR3|=0x60;
  45.   TIM1_CCER2&=0x3d;
  46.   TIM1_CCER2|=0x01;
  47.   TIM1_OISR|=0x10;
  48. }

  49. void TIM1_PWM_SET(ulong PWM_SET)//改变周期
  50. {
  51. //  PWM_SET=(PWM_SET/2); //改变和边沿对齐一样的频率
  52.   TIM1_ARRH=PWM_SET/256;
  53.   TIM1_ARRL=PWM_SET%256;
  54.   TIM1_CR1|=0x60;
  55.   CH1_PWM_SET(PWM_SET,0.2);
  56.   CH2_PWM_SET(PWM_SET,0.4);
  57.   CH3_PWM_SET(PWM_SET,0.6);
  58.   TIM1_CR1|=0x01;
  59.   TIM1_BKR|=0x80;
  60. }

  61. void main(void)
  62. {
  63.   CLK_CKDIVR=0x00;
  64.   delay(10);
  65.   TIM1_PWM_SET(16000);
  66.   while(1);
  67. }
复制代码

所有资料51hei提供下载:

中间对齐TIM1PWM输出.rar (273.98 KB, 下载次数: 26)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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