请问端口怎么计数其脉冲个数以及判断其上升沿

2019-07-14 15:45发布

一个端口通过外部使其置高或置低效果类似方波脉冲(但不是持续的,有可能长时间都置低),怎么计数其脉冲个数以及判断其上升沿,比如说在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端口的脉冲个数以及判断其上升沿.
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
周小舟1
1楼-- · 2019-07-15 14:55
 精彩回答 2  元偷偷看……
TOPCB
2楼-- · 2019-07-15 20:40
如果长时间不变,是不会影响的计数的,只有上升沿发生时才会进入中断。楼主可以测试一下。
vywyefswer
3楼-- · 2019-07-16 01:00
周小舟1 发表于 2018-11-26 17:06
明白了,但是如果该脉冲不是持续恒定的,有可能PD2端口会突然长时间置低,影响计数吗

当然不影响了,你外部中断设置的是边沿触发而不是电平触发,所以不论你电平持续时间有多长都不影响
周小舟1
4楼-- · 2019-07-16 05:07
vywyefswer 发表于 2018-11-26 17:38
当然不影响了,你外部中断设置的是边沿触发而不是电平触发,所以不论你电平持续时间有多长都不影响

恩,还有个问题,PD2端口脉冲是在TIM1溢出中断里产生的,如果我再开外部中断,还需要设置中断优先级吗
wangyuzi87
5楼-- · 2019-07-16 10:51
周小舟1 发表于 2018-11-26 15:19
直接计数怎么做,需要开外部中断吗,我只知道通过中断可以计数脉冲个数

自然要开中断,然后在中断中判别计数及相应的判别处理如判别上升沿等。
直接计数好像不如单片机那样方便。
周小舟1
6楼-- · 2019-07-16 12:07
 精彩回答 2  元偷偷看……

一周热门 更多>