一个端口通过外部使其置高或置低效果类似方波脉冲(但不是持续的,有可能长时间都置低),怎么计数其脉冲个数以及判断其上升沿,比如说在TIM1定时器溢出中断里: #pragma vector=TIM1_OVR_UIF_vector __interrupt void TIM1_OVR_UIF_IRQHandler(void) { TIM1_SR1=0X00; count13++; if(count13==3) //数3个脉冲后PD2置高 PD2=1; if(count13==6) //数3个脉冲后PD2置低 PD2=0; } 如何计数PD2端口的脉冲个数以及判断其上升沿. |
评分
查看全部评分
直接计数怎么做,需要开外部中断吗,我只知道通过中断可以计数脉冲个数
评分
查看全部评分
测量脉冲个数还有判断下降沿
评分
查看全部评分
谢谢啦,还有如果这个脉冲不是持续的,可能PD2端口会突然长时间置低,会影响计数吗
评分
查看全部评分
明白了,但是如果该脉冲不是持续恒定的,有可能PD2端口会突然长时间置低,影响计数吗
评分
查看全部评分
当然不影响了,你外部中断设置的是边沿触发而不是电平触发,所以不论你电平持续时间有多长都不影响
恩,还有个问题,PD2端口脉冲是在TIM1溢出中断里产生的,如果我再开外部中断,还需要设置中断优先级吗
自然要开中断,然后在中断中判别计数及相应的判别处理如判别上升沿等。
直接计数好像不如单片机那样方便。
那不就是来一个脉冲进一次中断吗,我看网上说这样浪费资源,不是很懂