📄 占空比可变方波.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 + -