/***********8位定时器T/C0 T/C2 定时中断 *********/
TCCR0=0x02; //8分频
TCNT0=156; //8位计数器初值
TIMSK=0x01; //T/C0 使能 中断屏蔽寄存器
SREG|=0x80; //开总中断
//T/C0中断号:10
TCCR2=0x01; //不分频
TCNT2=156; //8位计数器初值
TIMSK=0x40; //T/C2 使能 中断屏蔽寄存器
SREG|=0x80; //开总中断
/****T/C2中断号:5***/
CVAVR: interrupt [TIM2_OVF] void timer2_ovf_isr(void)
ICCAVR: #pragma interrupt_handler int2_isr:5 void int2_isr(void)
/*************************************************************/
/********************16位定时器T/C1定时中断*******************/
TCCR1B=0x02; //8分频
TCNT1H=0x3c; //高位初值
TCNT1L=0xb0; //低位初值
TIMSK=0x04; //T/C1 使能 中断屏蔽寄存器
SREG|=0x80; //开总中断
/* T/C0中断号:9*/
CVAVR: interrupt [TIM1_OVF] void timer1_ovf_isr(void)
/*******************************************************/
/***********************外部中断 ***********************/
GICR|=0xE0; //通用中断控制寄存器 INT1 INT0 INT2
MCUCR=0x0B; //MCU控制寄存器 跳变方式
MCUCSR=0x00; //Bit 6 – ISC2: 中断 2 触发方式控制
GIFR=0xE0; //中断标志寄存器 写入 ”1” 来清零
SREG|=0x80; //开总中断
/*
外部中断0向量号: 2
外部中断1向量号: 3
外部中断2向量号: 19
*/
CVAVR:interrupt [EXT_INT0] void ext_int0_isr(void){ }
ICCAVR: #pragma interrupt_handler exintn_isr:n void exintn_isr(void){ }
/************************************************************************/