最近在做个项目,刚好用到T/C1输入捕获这个功能,但在看一些输入捕获的例程有些不明白。
程序是这样的:
interrupt[TIMI_CAPT] void timer1_isr(void)
{
a_temp=a;
a_L=ICR1L;
a_H=ICR1H;
a=a_H*256+a_L;
if(a<a_temp)
{
count=0xffff-a_temp+1+a; //这个部分分怎么理解?
}
else
{
count=a-a_temp; //这个计算电平时间
}
TIFR=0x20;
}红色部分的不理解,请高手帮忙分析分析下。
|