定时器0的初始化
void init_time0()
{
TCCR0=0x01; //零分频
TIMSK=0x01;
}
超声波的设置
unsigned int chaoshengbo()
{
float s;
c=1;
PORTD|=0x02; //送25us高电平 超声波控制端接在PB1口
_delay_us(25);
PORTD&=(~0x02);
while (!(PIND&0x01)) //检测是否有高电平的产生 接收端在PB0口
TCNT0=0;
flag=0;
c=0;
while(PIND&0x01) //检测低电平
temp=flag*256+TCNT0;
s=temp*0.017*40;
return (unsigned int)s;
}
定时器0的中断程序
SIGNAL(SIG_OVERFLOW0)
{
flag++;
TCNT0=0;
}
我想问一下为什么程序在
while (!(PIND&0x01)) //检测是否有高电平的产生 接收端在PB0口
TCNT0=0;
flag=0;
c=0;
while(PIND&0x01) //检测低电平
这个中间不进入中断 |