|
我用的是ATMEGA48,要测800---2300US的脉冲 ICR是PB0
初始化程序为
void time1_init(void)
{
TCCR1A=0x00;
TCCR1B=0xc1;
TIMSK1=0X20;
}
捕捉中断程序
void INcatch_ser(void)
{
uint a,b;
if(PINB&0X01) //读脚位电平
{
a=ICR1L;
b=ICR1H;
num1=(b<<8)|a;
TCCR1B &= 0XBF; //改触发方式
TIFR|=(1<<ICF1);
m=1;
}
else
{
a=ICR1L;
b=ICR1H;
num2=(b<<8)|a;
TCCR1B |= 0X40; //改触发方式
TIFR|=(1<<ICF1);
n=1;
}
if((m==1)&&(n==1))
{
if(num1<num2) num3= num2-num1;
else num3=0xffff-num1+num2;
n=0;m=0;
}
}
这样读出的num3是一个很乱的数据 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|