📄 main.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 + -