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;}

}

}

上一篇下一篇

猜你喜欢

热点阅读