打印
[STM8]

端口脉冲计数

[复制链接]
2256|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 | 只看该作者
优先级基本上不用考虑。

使用特权

评论回复
5
huangcunxiake| | 2017-1-19 18:07 | 只看该作者
如果你想优先级,在中断函数先关掉总中断,处理完开启退出。

使用特权

评论回复
6
sang523|  楼主 | 2017-1-19 20:28 | 只看该作者
huangcunxiake 发表于 2017-1-19 18:07
如果你想优先级,在中断函数先关掉总中断,处理完开启退出。

其实我的要求是PD2脉冲的输出不能受到影响,像开了外部中断能影响到PD2输出吗

使用特权

评论回复
7
robter| | 2017-1-20 08:19 | 只看该作者
调试好了吗?关注中

使用特权

评论回复
8
huangcunxiake| | 2017-1-21 12:31 | 只看该作者
sang523 发表于 2017-1-19 20:28
其实我的要求是PD2脉冲的输出不能受到影响,像开了外部中断能影响到PD2输出吗 ...

说句实话,中断之间其实都是有一定影响的,要不不会有优先级这个概念。

使用特权

评论回复
9
sang523|  楼主 | 2017-1-21 13:34 | 只看该作者
huangcunxiake 发表于 2017-1-21 12:31
说句实话,中断之间其实都是有一定影响的,要不不会有优先级这个概念。 ...

如果不用外部中断呢,还有其他的办法去计数和判断边沿极性吗

使用特权

评论回复
10
myiclife| | 2017-1-21 17:50 | 只看该作者
你可以通过上升沿或者下降沿中断触发

使用特权

评论回复
11
myiclife| | 2017-1-21 17:51 | 只看该作者
捕获的话,可能会出现超时。

使用特权

评论回复
12
sang523|  楼主 | 2017-1-22 14:36 | 只看该作者
myiclife 发表于 2017-1-21 17:51
捕获的话,可能会出现超时。

你说的是定时器的上升沿下降沿触发还是外部中断?

使用特权

评论回复
13
huangcunxiake| | 2017-1-22 15:24 | 只看该作者
sang523 发表于 2017-1-21 13:34
如果不用外部中断呢,还有其他的办法去计数和判断边沿极性吗

也可以,直接判断IO电平的变化。

使用特权

评论回复
14
sang523|  楼主 | 2017-1-22 15:59 | 只看该作者
huangcunxiake 发表于 2017-1-22 15:24
也可以,直接判断IO电平的变化。

比如我现在需要判断PD2脉冲的下降沿,怎么判断呢,直接在中断里读PD2_IDR的值吗?

使用特权

评论回复
15
Garen2| | 2017-1-22 16:24 | 只看该作者
通过上升沿或者下降沿中断触发

使用特权

评论回复
16
sang523|  楼主 | 2017-1-23 08:08 | 只看该作者
Garen2 发表于 2017-1-22 16:24
通过上升沿或者下降沿中断触发

就是开外部中断,然后设置下降沿触发对吧

使用特权

评论回复
17
天灵灵地灵灵| | 2017-1-23 17:05 | 只看该作者
最后你选了哪个方法实现的啊?

使用特权

评论回复
18
sang523|  楼主 | 2017-1-24 10:53 | 只看该作者
天灵灵地灵灵 发表于 2017-1-23 17:05
最后你选了哪个方法实现的啊?

试了外部中断没实现,我外部中断里面还有ad采样,跟ad有关系吗?

使用特权

评论回复
19
huangcunxiake| | 2017-1-26 20:30 | 只看该作者
楼主真费劲,试试就知道了。

使用特权

评论回复
20
xiaoyaodz| | 2017-1-26 21:50 | 只看该作者
这个是哪个处理器的?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

133

帖子

2

粉丝