端口脉冲计数
一个端口通过外部使其置高或置低效果类似方波脉冲(但不是持续的,有可能长时间都置低),怎么计数其脉冲个数以及判断其上升沿,比如说在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由0->1的变化即可。 jinglixixi 发表于 2017-1-18 11:00
你对PD2的高或低直接计数即可,至于上升沿看PD2由0->1的变化即可。
直接计数怎么做,需要开外部中断吗,我只知道通过中断可以计数脉冲个数 你是要输出脉冲?还是测量脉冲个数? zoomdy 发表于 2017-1-18 12:50
你是要输出脉冲?还是测量脉冲个数?
测量脉冲个数还有判断下降沿 外部中断上升沿触发来进行上升沿的计数。 安 发表于 2017-1-18 13:34
外部中断上升沿触发来进行上升沿的计数。
谢谢啦,还有如果这个脉冲不是持续的,可能PD2端口会突然长时间置低,会影响计数吗 楼上说的都挺对的,如果只检测上升沿的话就可以设置成外部中断为上升沿触发即可,在中断服务例程中计数即可。 anobodykey 发表于 2017-1-18 14:20
楼上说的都挺对的,如果只检测上升沿的话就可以设置成外部中断为上升沿触发即可,在中断服务例程中计数即可 ...
明白了,但是如果该脉冲不是持续恒定的,有可能PD2端口会突然长时间置低,影响计数吗 如果长时间不变,是不会影响的计数的,只有上升沿发生时才会进入中断。楼主可以测试一下。
页:
[1]
2