AVR捕捉中断可以读取ICP1引脚的电平不
想用AVR捕捉来测一个频率,但不知还能读这个引脚上的电平不,用于测占空比。哪位大虾知道说一下,外部中断的引脚好像可以读取当中断发生了可以读取引脚 上电
平的变化。。 可以。 改变ICP检测的边缘。在ICP中断里改变检测边缘之后,要清除中断标志,软件清除! 这样就能检测占空比了 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]