?? pwm.h~
字號:
#define PWM1_IN() {DDRB.5=1;PORTB.5=0;} //PWM端口控制
#define PWM1_OUT() DDRB.5=1;
#define PWM2_IN() {DDRB.6=0;PORTB.6=0;}
#define PWM2_OUT() DDRB.6=1;
/************************************************************************
PWM初始化程序
使用TIMER1,預(yù)分頻為8,設(shè)置10位快速PWM模式,關(guān)閉中斷
************************************************************************/
void pwm_init(void){
TIMSK&=0XC3; //關(guān)閉TIMER1中斷
ETIMSK&=0XFE;
TCCR1A=0; //關(guān)閉定時器
TCCR1B=0;
OCR1A=0X0000; //關(guān)閉輸出
OCR1B=0X0000;
TCCR1A=0XA3; //設(shè)置10位快速PWM模式,預(yù)分頻為8
TCCR1B=0X0A;
PWM1_IN()
PWM2_IN()
}
/****************************************************************************
PWM通道控制程序
功能:可以進(jìn)行單通道的開關(guān)和調(diào)整輸出
入口參數(shù):
a:通道選擇(1、一通道,2、二通道)
b:通道控制(1、改值,2、開端口,3、關(guān)端口)
c:PWM更改值
****************************************************************************/
void pwm(unsigned char a,unsigned char b,unsigned int c){
switch(a){
case 1: //PWM1通道控制
switch(b){
case 1: //改變PWM1值
if(c<=0X03FF)OCR1A=c;
break;
case 2: //開PWM1端口
if(c<=0X03FF)OCR1A=c;
PWM1_OUT()
break;
case 3: //關(guān)PWM1端口
OCR1A=0X0000;
PWM1_IN()
break;
}
break;
case 2: //PWM2通道控制
switch(b){
case 1: //改變PWM2值
if(c<=0X03FF)OCR1B=c;
break;
case 2: //開PWM2端口
if(c<=0X03FF)OCR1B=c;
PWM2_OUT()
break;
case 3: //關(guān)PWM2端口
OCR1B=0X0000;
PWM2_IN()
break;
}
break;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -