|
发表于 2017-11-3 13:30:36
|
显示全部楼层
//下面定时1ms。晶振可能不准,实际定时是1.010ms
#include <avr/io.h>
#include <avr/interrupt.h>
#define LEDPIN 13
u8 flag=0;
void setup()
{
pinMode(LEDPIN, OUTPUT);
cli();
TCCR1A=0;
TCCR1B=(1<<CS20);//寄存器B是配置定时功能的,现在配置的是不分频
TCNT1=49535; //计数器初值
//不分频16m,1s计数16000000次 1ms计数16000次 TCNT1= 0XFFFF -16000= 49535
TIMSK1=(1<<TOIE1); //溢出中断使能
sei(); //开全局中断
}
ISR(TIMER1_OVF_vect)
{
TCNT1=49535;
flag=!flag;
digitalWrite(LEDPIN,flag);
}
void loop()
{
} |
|