EX3AVR ATmega8A8位定时器 TC0
2018-06-14 本文已影响0人
山前雨1
//EX3//微信号:shanqianyu1//author:QI小米粥//data: 2018.3.13#include#includechar a,b,c;
void init_tc0(void)
{
TCCR0 |=0x05; //预定标寄存器选择1024
TCCR0 &=~0X02;
SREG |=0X80; //全局中断
TIMSK |=BIT(0);//中断使能
}
void init_io(void)
{
DDRB=0X07;//三个显示的LED灯的输出设置
}
#pragma interrupt_handler tc0_inter:10
void tc0_inter(void)
{
a++;
b++;
c++;
TCNT0=0X80;//可以时刻改变TCNT0的值
}
void main(void)
{
init_io();
init_tc0();
a=0;
b=0;
c=0;
while(1)
{
//这里可以用switch来实现
//根据abc的循环的值不同这样来使频率不同;
if(a==16)
{PORTB |=BIT(0);}
if(a==32)
{PORTB &=~BIT(0); a=0;}
if(b==8)
{PORTB |=BIT(1);}
if(b==16)
{PORTB &=~BIT(1);b=0;}
if(c==4)
{PORTB |=BIT(2);}
if(c==8)
{PORTB&=~BIT(2);c=0;}
}
}