端口脉冲计数

2019-10-15 06:27发布

一个端口通过外部使其置高或置低效果类似方波脉冲(但不是持续的,有可能长时间都置低),怎么计数其脉冲个数以及判断其上升沿,比如说在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端口的脉冲个数以及判断其上升沿.

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
yijinxiaoyou
1楼-- · 2019-10-15 09:19
不是有边缘触发模式嘛
yijinxiaoyou
2楼-- · 2019-10-15 15:00
PD2 的话弄个动态变量就行了  
yijinxiaoyou
3楼-- · 2019-10-15 19:14
比如
if(pd2!=temp)
{
temp=pd2;
i++;
}
sang523
4楼-- · 2019-10-15 22:36
yijinxiaoyou 发表于 2017-1-18 09:20
比如
if(pd2!=temp)
{

哦,是不是开外部中断,还有if(pd2!=temp)和i++看不懂。。。
yijinxiaoyou
5楼-- · 2019-10-16 04:11
 精彩回答 2  元偷偷看……
sang523
6楼-- · 2019-10-16 09:20
yijinxiaoyou 发表于 2017-1-18 10:41
不是很明白你想做什么如果是外部计数 用定时器计数模式边沿触发

就是一个io口,通过置高置低形成脉冲,我要实现对其计数和判断下降沿

一周热门 更多>