[STM8] 端口脉冲计数

[复制链接]
2903|27
 楼主| sang523 发表于 2017-1-19 11:59 | 显示全部楼层 |阅读模式
一个端口通过外部使其置高或置低效果类似方波脉冲(但不是持续的,有可能长时间都置低),怎么计数其脉冲个数以及判断其下降沿,比如说在TIM1定时器溢出中断里我让PD2端口产生类似脉冲:
#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端口的脉冲个数以及判断其上升沿.
mmuuss586 发表于 2017-1-19 15:27 | 显示全部楼层
开个外部中断,或定时器输入就可以啊;

上升沿触发,没触发1次计数1次;
 楼主| sang523 发表于 2017-1-19 15:45 | 显示全部楼层
mmuuss586 发表于 2017-1-19 15:27
开个外部中断,或定时器输入就可以啊;

上升沿触发,没触发1次计数1次; ...

外部中断开启的话需要考虑中断优先级吗,毕竟脉冲是通过TIM1溢出中断产生的,我看外部中断的优先级要高呢
huangcunxiake 发表于 2017-1-19 18:06 | 显示全部楼层
优先级基本上不用考虑。
huangcunxiake 发表于 2017-1-19 18:07 | 显示全部楼层
如果你想优先级,在中断函数先关掉总中断,处理完开启退出。
 楼主| sang523 发表于 2017-1-19 20:28 | 显示全部楼层
huangcunxiake 发表于 2017-1-19 18:07
如果你想优先级,在中断函数先关掉总中断,处理完开启退出。

其实我的要求是PD2脉冲的输出不能受到影响,像开了外部中断能影响到PD2输出吗
robter 发表于 2017-1-20 08:19 | 显示全部楼层
调试好了吗?关注中
huangcunxiake 发表于 2017-1-21 12:31 | 显示全部楼层
sang523 发表于 2017-1-19 20:28
其实我的要求是PD2脉冲的输出不能受到影响,像开了外部中断能影响到PD2输出吗 ...

说句实话,中断之间其实都是有一定影响的,要不不会有优先级这个概念。
 楼主| sang523 发表于 2017-1-21 13:34 | 显示全部楼层
huangcunxiake 发表于 2017-1-21 12:31
说句实话,中断之间其实都是有一定影响的,要不不会有优先级这个概念。 ...

如果不用外部中断呢,还有其他的办法去计数和判断边沿极性吗
myiclife 发表于 2017-1-21 17:50 | 显示全部楼层
你可以通过上升沿或者下降沿中断触发
myiclife 发表于 2017-1-21 17:51 | 显示全部楼层
捕获的话,可能会出现超时。
 楼主| sang523 发表于 2017-1-22 14:36 | 显示全部楼层
myiclife 发表于 2017-1-21 17:51
捕获的话,可能会出现超时。

你说的是定时器的上升沿下降沿触发还是外部中断?
huangcunxiake 发表于 2017-1-22 15:24 | 显示全部楼层
sang523 发表于 2017-1-21 13:34
如果不用外部中断呢,还有其他的办法去计数和判断边沿极性吗

也可以,直接判断IO电平的变化。
 楼主| sang523 发表于 2017-1-22 15:59 | 显示全部楼层
huangcunxiake 发表于 2017-1-22 15:24
也可以,直接判断IO电平的变化。

比如我现在需要判断PD2脉冲的下降沿,怎么判断呢,直接在中断里读PD2_IDR的值吗?
Garen2 发表于 2017-1-22 16:24 | 显示全部楼层
通过上升沿或者下降沿中断触发
 楼主| sang523 发表于 2017-1-23 08:08 | 显示全部楼层
Garen2 发表于 2017-1-22 16:24
通过上升沿或者下降沿中断触发

就是开外部中断,然后设置下降沿触发对吧
天灵灵地灵灵 发表于 2017-1-23 17:05 | 显示全部楼层
最后你选了哪个方法实现的啊?
 楼主| sang523 发表于 2017-1-24 10:53 | 显示全部楼层
天灵灵地灵灵 发表于 2017-1-23 17:05
最后你选了哪个方法实现的啊?

试了外部中断没实现,我外部中断里面还有ad采样,跟ad有关系吗?
huangcunxiake 发表于 2017-1-26 20:30 | 显示全部楼层
楼主真费劲,试试就知道了。
xiaoyaodz 发表于 2017-1-26 21:50 | 显示全部楼层
这个是哪个处理器的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

133

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部