AVR 天天练!定时器0!
#include<avr/io.h>
#include<avr/interrupt.h>
#include <avr/signal.h>
#define uint unsigned int
#define uchar unsigned char
static uint c;
void init(void);
void delay(uint s)
{
uint i,j;
for(i=0;i<s;i++)
for(j=0;j<300;j++);
}
int main(void)
{
init();
DDRB=0xff;
PORTB=0xff;
while(1)
{
if(c==5)
{
c=0;
PORTB ^=0xff;
}
}
}
void init(void)
{
sei();//开全局中断
TCCR0 |=(1<<CS02);;//系统时钟256分频
TCNT0=0x01;//初值
TIMSK=0x01;//打开T/C中断屏蔽寄存器
}
SIGNAL(SIG_OVERFLOW0)
{
TCNT0=0x01;
c++;
}