OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2985|回复: 9

端口脉冲计数

[复制链接]

19

主题

62

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2016-10-11
在线时间
98 小时
发表于 2017-1-18 09:12:15 | 显示全部楼层 |阅读模式
20金钱
一个端口通过外部使其置高或置低效果类似方波脉冲(但不是持续的,有可能长时间都置低),怎么计数其脉冲个数以及判断其上升沿,比如说在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端口的脉冲个数以及判断其上升沿.

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

13

主题

186

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2016-6-30
在线时间
97 小时
发表于 2017-1-18 09:15:28 | 显示全部楼层
不是有边缘触发模式嘛
回复

使用道具 举报

13

主题

186

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2016-6-30
在线时间
97 小时
发表于 2017-1-18 09:17:53 | 显示全部楼层
PD2 的话弄个动态变量就行了  
回复

使用道具 举报

13

主题

186

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2016-6-30
在线时间
97 小时
发表于 2017-1-18 09:20:37 | 显示全部楼层
比如
if(pd2!=temp)
{
temp=pd2;
i++;
}
回复

使用道具 举报

19

主题

62

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2016-10-11
在线时间
98 小时
 楼主| 发表于 2017-1-18 09:26:51 | 显示全部楼层
yijinxiaoyou 发表于 2017-1-18 09:20
比如
if(pd2!=temp)
{

哦,是不是开外部中断,还有if(pd2!=temp)和i++看不懂。。。
回复

使用道具 举报

13

主题

186

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2016-6-30
在线时间
97 小时
发表于 2017-1-18 10:41:32 | 显示全部楼层
不是很明白你想做什么如果是外部计数 用定时器计数模式边沿触发
回复

使用道具 举报

19

主题

62

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2016-10-11
在线时间
98 小时
 楼主| 发表于 2017-1-18 11:11:04 | 显示全部楼层
yijinxiaoyou 发表于 2017-1-18 10:41
不是很明白你想做什么如果是外部计数 用定时器计数模式边沿触发

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

使用道具 举报

13

主题

186

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2016-6-30
在线时间
97 小时
发表于 2017-1-18 14:26:26 | 显示全部楼层
sang523 发表于 2017-1-18 11:11
就是一个io口,通过置高置低形成脉冲,我要实现对其计数和判断下降沿

自己生成的脉冲自己应该很清楚啊
回复

使用道具 举报

3

主题

95

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2452
金钱
2452
注册时间
2015-11-1
在线时间
301 小时
发表于 2017-1-18 18:18:16 | 显示全部楼层
将IO设置中下降沿中断,只要有一个下降沿中断,就计一次脉冲.
回复

使用道具 举报

19

主题

62

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2016-10-11
在线时间
98 小时
 楼主| 发表于 2017-1-19 08:04:19 | 显示全部楼层
cos12a 发表于 2017-1-18 18:18
将IO设置中下降沿中断,只要有一个下降沿中断,就计一次脉冲.

我知道了,用外部中断,在中断里计数对吧,这样还需要设置中断优先级吗,毕竟PD2是TIM1溢出中断里产生的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-1 02:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表