?? 占空比可變方波.txt
字號:
/*****************************************************************/
/* 方波產生程序 */
/* 2008年9月4日 */
/* 目標MCU:ATmega8L 晶振:內部RC(INT)8MHz */
/******************************************************************/
#include<iom8v.h>
#define uchar unsigned char
#define uint unsigned int
uchar i;
void init_port(void)
{
DDRB=0x08; //設置OC2口為輸出
PORTB=0xff;
DDRC|=0xff;
PORTC=0x00;
DDRD|=0xff;
PORTD=0x00;
}
void init_timer2(void)
{
TCCR2=0x00; //先停止T/C2
TCNT2=0x00; //賦計數初值為0
//OCR2=0xc0; //比較匹配參考值
TIMSK|=0x80; //打開比較匹配中斷
TCCR2=0x69; //T/C2為快速PWM模式,比較匹配時清零OC2,0xff時置位oc2,不分頻
}
void init_devices(void)
{
//SREG&=0x00;
SREG|=0x80;
init_port();
init_timer2();
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/*void change_rate(uchar number)
{
OCR2=number;
init_devices();
}*/
void main(void)
{
unsigned int a=184;
init_devices(); //器件初始化
OCR2=a; //匹配初值
while(1)
{
//init_devices(); //器件初始化
a-=5;
OCR2=a;
if(a<=5)
{
a=234;
}
delay(1000);
}
}
/*****************************************************************/
/* AD轉換程序 */
/* 2007年12月21日 */
/* 目標MCU:ATmega8L 晶振:內部RC(INT)8MHz */
/******************************************************************/
#include<iom8v.h>
#define uchar unsigned char
#define uint unsigned int
uchar i;
void init_port(void)
{
DDRB=0x08; //設置OC2口為輸出
PORTB=0xff;
DDRC|=0xff;
PORTC=0x00;
DDRD|=0xff;
PORTD=0x00;
}
void init_timer2(void)
{
TCCR2=0x00; //先停止T/C2
TCNT2=0x00; //賦計數初值為0
//OCR2=0xc0; //比較匹配參考值
TIMSK|=0x80; //打開比較匹配中斷
TCCR2=0x69; //T/C2為快速PWM模式,比較匹配時清零OC2,0xff時置位oc2,不分頻
}
void init_devices(void)
{
//SREG&=0x00;
SREG|=0x80;
init_port();
init_timer2();
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void change_rate(uchar number)
{
OCR2=number;
}
void main(void)
{
unsigned char i;
unsigned int a=0x20;
init_devices(); //器件初始化
//OCR2=a; //匹配初值
while(1)
{
for(i=0;i<40;i++)
{
change_rate(a);
a+=20;
delay(1000);
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -