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);}
0条回答

一周热门 更多>