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

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-14 22:03
wangyuzi87 发表于 2018-11-26 15:01
你对PD2的高或低直接计数即可,至于上升沿看PD2由0->1的变化即可。

直接计数怎么做,需要开外部中断吗,我只知道通过中断可以计数脉冲个数
60user58
2楼-- · 2019-07-15 03:09
 精彩回答 2  元偷偷看……
周小舟1
3楼-- · 2019-07-15 03:39
60user58 发表于 2018-11-26 15:32
你是要输出脉冲?还是测量脉冲个数?

测量脉冲个数还有判断下降沿
TOPCB
4楼-- · 2019-07-15 08:11
外部中断上升沿触发来进行上升沿的计数。
周小舟1
5楼-- · 2019-07-15 08:25
TOPCB 发表于 2018-11-26 16:09
外部中断上升沿触发来进行上升沿的计数。

谢谢啦,还有如果这个脉冲不是持续的,可能PD2端口会突然长时间置低,会影响计数吗
vywyefswer
6楼-- · 2019-07-15 09:28
楼上说的都挺对的,如果只检测上升沿的话就可以设置成外部中断为上升沿触发即可,在中断服务例程中计数即可。

一周热门 更多>