#define F_CPU 16000000UL // 16 MHz #include <stdio.h> #include<avr/io.h> #include<avr/interrupt.h> #include <util/delay.h> unsigned char time_us=0x00; unsigned char i=0; unsigned char u=0;
//volatile int main() {
DDRA=0x00; PORTA=0x00; DDRB=0xFF; PORTB=0x00; DDRC=0x00; PORTC=0x00; DDRD=0x00; PORTD=0xFF; MCUCR=0x02; //上升沿触发 GICR=0x40;//in0使能 SREG=0x80; while(1) {
u=0x01;}}
ISR(INT0_vect) { _delay_us(u);PORTB=(0xFF);}
求助:中断程序里 _delay_us(u); 的变量u 会使 我的中断程序执行件变长。 请高手指点 我的目的是希望PORTB在中断触发2uS左右动作,并且希望时间可调。
例如 我若 使用 _delay_us(2) 执行两微秒 是正常的;使用 _delay_us(u);时 执行时间会变成 60多微秒。 |