Atmega16三个外部中断通过定时器0获得三个外部中断时间差
2019-07-15 08:26发布
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
void int_init(void)//中断初始化{ MCUCR=0X0F;//0/1上升沿有效 MCUCSR=0X40;2上升沿有效 GICR=0XE0;//允许0/1中断 SREG|=BIT(7);//开启总中断}void INT0_Ir()//接放置在x0的传感(17.5){ aaa=time; GICR&=0xA0;}void INT1_Ir()//接放置在x1的传感器(10.0){ bbb=time; GICR&=0x60;}void INT2_Ir()//接放置在x2的传感器(-10.0){ ccc=time; GICR&=0xc0;}
void TC0_init(void)//T/C0初始化{ TCCR0=0X09;//控制寄存器 CTC模式无预分频 TCNT0=0X00;//初始值 OCR0=0X04;//预设值 TIMSK=0X02;//比较匹配中断使能 SEI();}
#pragma interrupt_handler Timer0:iv_TIMER0_COMPvoid Timer0(void){ TCNT0=0X00; time++;}
void main(){ IO_Init(); TC0_init(); int_init(); jisuan(t1,t2); while(1);}
一周热门 更多>