#include <avr/io.h>
#include <avr/interrupt.h>
int main(void)
{
DDRB |= (1<<PORTB5); //DDRB – The Port B Data Direction Register. Initial Value 0. 设PB5输出(Arduino管脚13)
PORTB |= (1<<PORTB5); //PORTB – The Port B Data Register. Initial Value 0. 设PB5高电平
TCNT0 = 0; //TCNT0 – Timer/Counter Register. Initial Value 0. 设计数器初值0
TIMSK0 |= (1<<TOIE0); /*TIMSK0 – Timer/Counter Interrupt Mask Register. Initial Value 0. 允许定时器0溢出中断
TOIE0: Timer/Counter0 Overflow Interrupt Enable.
When the TOIE0 bit is written to one, and the I-bit in the status register
is set, the Timer/Counter0 overflow interrupt is enabled.*/
TCCR0B |= (1<<CS00)|(1<<CS02); //给定时器设置预分频系数
sei();
while (1)
{
}
}
SIGNAL(TIMER0_OVF_vect) //TIMER0_OVF_vect指向定时器0溢出中断地址
{
//此添加中断服务程序代码
PORTB ^= (1<<PORTB5); //PB5取反,管脚13输出方波
}