oc0pwm._c

来自「ATmega16应用例子」· _C 代码 · 共 22 行

_C
22
字号
#include<iom16v.h> 
#include<macros.h> 

void timer0_init(void) 
{ 
	TCCR0 = (1<<WGM01)|(1<<WGM00)|(1<<COM01)|(1<<COM00)|(1<<CS00);	
/*
	WGM01=1; WGM00=1; --> fast PWM modle
	COM01=1; COM00=0; --> 比较匹配时set OC2 pin
	CS00=1;  --> timer0 source 不经过任何分频,直接为Clk,使得PWM可以工作得足够快
*/
	TCNT0 = 0x00;			//设置TC2计数寄存器初值 
	OCR0  = 0xe0;			//输出比较寄存器初值,设置该值可用于调节占空比
} 

void main(void) 
{
	DDRD |= 0b10000000;	//为允许PWM工作,需设置PD7为输出
	timer0_init(); 
	SEI(); 
	while(1);
}

⌨️ 快捷键说明

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