void init_exti() //外部中断
{
EXTI_DeInit();
AFIO->EXTICR[0] = 0x2222; //PC0 W5100 , PC1 下降沿 , pc2 上升沿 ,pc3 读写信号
EXTI->IMR = 7;
EXTI->EMR = 0;
EXTI->FTSR = 3; //W5100 下降沿,pc1下降沿
EXTI->RTSR = 0x0c; //pc2, pc3 上升沿
}
GPIOC->CRL = 0x44444444; //中断管脚加了5.1K上拉电阻
GPIOC->CRH = 0x44442444;
有一个1ms加1的变量,在PC2上升沿中断程序,将改变另清零,而在PC1下降沿测该变量的数值,测量脉冲宽度,我的脉冲宽度,只有2ms、5ms、8ms三种可能,我在主程序监控该变量,是否大于14,来判断是否信号出现异常,被测信号调制频率100hz,是个标准元,大约十几秒钟就会出现时间变量大于14
|