⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 STM8S105S4程序
💻 C
字号:
/******************** 2011电子科技协会 ********************
;名称 :PWM    
;作者 : 郑品洪
;日期 : 07/25/2011
;描述 :  利用定时器2通道二实现PWM功能,请用杜邦线将51板中的P3^3口和其中的一个LDE相连
;***********************************************************/
#include <stm8s105s4.h>
#define uchar unsigned char
void delay(uchar a)
{
    uchar i;
    for(a;a>0;a--)
        for(i=0;i<255;i++);	
}
void init(void)
{
    TIM2_CCMR2 = TIM2_CCMR2 | 0x70;         // 通道2被设置成比较输出方式
																					// OC2M = 111,为PWM模式2,
                                         // 向上计数时,若计数器小于比较值,为无效电平
																				// 即当计数器在0到比较值时,输出为1,否则为0
                                         //详见STM8S系列数据参考手册
    TIM2_CCER1 = TIM2_CCER1 | 0x30;

  TIM2_ARRH = 0;
  TIM2_ARRL = 0xFF;                     //初始化自动装载寄存器,决定PWM方波的频率

  TIM2_PSCR = 0;                       // 初始化时钟分频器为1,即计数器的时钟频率为Fmaster=4MHZ
	TIM2_CR1 = TIM2_CR1 | 0x01;         //使能定时器,即启动 定时器
}
void main()
{
    uchar i;
    init();
    while(1)
  {
     // 下面的循环将占空比逐渐从0递增到75%
        for(i=0;i<255;i++)
    {
      TIM2_CCR2H = 0;
      TIM2_CCR2L = i;
      delay(5);
    }
 
    // 下面的循环将占空比逐渐从75%递减到0
    for(i=255;i>0;i--)
    {
      TIM2_CCR2H = 0;
      TIM2_CCR2L = i;
      delay(5);
    }

	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -