📄 3pwm.c
字号:
#include <avr/io.h>
#include <avr/signal.h>
#define uchar unsigned char
#define uint unsigned int
//最高速度,9位PWM
uint a;
void delay(unsigned int t)
{
for(;t>0;t--);
}
//======================================
void init_t0()
{
DDRB|=0X08; //OC0(PB3) PWM out
TCCR0=0X61; //8位PWM,CK/1,必须将2个COM位的值设为2/3
//在升序计数时发生比较匹配(TCNT0=OCR0)将清零OC0 ;降序计数时发生比较匹配将置位OC0
OCR0=50; //调节占空比
}
void init_t1()
{
DDRD|=0X20; //设置OC1A(PD5)为输出
TCCR1A=0x81; //OC1A 初始为 "0",8 BITS PWM C3,1;;;83,0
//TCCR1B=0X41; //上升捕获 ,CK
TCCR1B=0X01;
OCR1A=200; //全速启动
SREG=0X80; //总中断开
TIMSK=0X22;
}
//=======================================
void init_t2()
{
DDRD|=0X80; //设置OC2(PD7)为输出
TCCR2=0X61; //T2的PWM使能,置OC2(PB3)为"0",1024分频
OCR2=100;
}
//=======================================
int main (void)
{
init_t0();
init_t1();
init_t2();
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -