tanguicaicai 发表于 2012-6-3 08:55:18

AVR捕捉中断可以读取ICP1引脚的电平不

想用AVR捕捉来测一个频率,但不知还能读这个引脚上的电平不,用于测占空比。
哪位大虾知道说一下,外部中断的引脚好像可以读取当中断发生了可以读取引脚 上电
平的变化。。

cotto1012 发表于 2013-7-15 00:04:55

可以。 改变ICP检测的边缘。在ICP中断里改变检测边缘之后,要清除中断标志,软件清除! 这样就能检测占空比了

cotto1012 发表于 2013-7-15 01:05:22

MEGA48 在IAR 环境里这么做:


//-------------------------定时器1 ICP-----------------------------
#pragma vector=TIMER1_CAPT_vect
__interrupt void Timer1_ICP_ISR(void)
{

PtrICP->ICP_Cnt = ICR1L;             //先读低8位
PtrICP->ICP_Cnt += (ICR1H<<8);
PtrICP->valIndex++;
PtrICP->ICP_Mask.Status_Bits.ICP_IntFlag = 1;

TIFR1_ICF1 = 1;
TCCR1B_ICES1 ^= 1;

}

当然,得额外设置一个变量来存哪种边缘的捕获值,进而确定占空比类型。
页: [1]
查看完整版本: AVR捕捉中断可以读取ICP1引脚的电平不