查看: 1485|回复: 12
打印 上一主题 下一主题

用430记录电脉冲的次数,应该怎么写呢?

[复制链接] qrcode

33

主题

40

帖子

119

积分

注册会员

Rank: 2

积分
119
楼主
跳转到指定楼层
发表于 2015-9-28 02:22 PM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

我的思路是这样的,给随便一个IO口接电路,电路时高低电平变化的,设k初值为0.每变换一次额高低电平,k加1.最后输出K的值.我的电路设计的高低电平变换最多只有6次.


这只是我的想法,最总怎么实现,想问问各位大神的意见,请教教我程序应该怎么写?,

回复

使用道具 举报

0

主题

105

帖子

46

积分

新手上路

Rank: 1

积分
46
沙发
发表于 2015-9-28 02:22 PM | 只看该作者
设置一个100ms的定时器,去检测那个IO口是否出现上升沿即可;如果你用的那个IO口可以接外部中断,直接用中断计数。如果你是初学者,只想试验下,主程序里while(1)循环直接检测就好。
回复 支持 反对

使用道具 举报

0

主题

88

帖子

16

积分

新手上路

Rank: 1

积分
16
板凳
发表于 2015-9-28 04:21 PM | 只看该作者
用个I/O口,直接统计上升沿的个数就行了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

6

主题

135

帖子

110

积分

注册会员

Rank: 2

积分
110
地板
发表于 2015-9-28 09:37 PM | 只看该作者
要不要用计数器/定时器呢?可以直接统计吗?
回复 支持 反对

使用道具 举报

0

主题

82

帖子

4

积分

新手上路

Rank: 1

积分
4
5#
发表于 2015-9-28 10:39 PM | 只看该作者
可以通过外部中断,这样在检测过程中还能处理其它事,如果还需要检测脉冲宽度的话,就需要用定时器的输入捕获了
回复 支持 反对

使用道具 举报

0

主题

77

帖子

22

积分

新手上路

Rank: 1

积分
22
6#
发表于 2015-9-29 12:43 PM | 只看该作者
楼上说得有理。
回复 支持 反对

使用道具 举报

0

主题

75

帖子

12

积分

新手上路

Rank: 1

积分
12
7#
发表于 2015-9-29 01:49 PM | 只看该作者
用个定时器,通过外部中断来检测脉冲上升沿的个数。
回复 支持 反对

使用道具 举报

0

主题

88

帖子

12

积分

新手上路

Rank: 1

积分
12
8#
发表于 2015-9-29 06:40 PM | 只看该作者
能给我个例子看看吗?我不太理解.
回复 支持 反对

使用道具 举报

0

主题

74

帖子

14

积分

新手上路

Rank: 1

积分
14
9#
发表于 2015-9-30 09:47 AM | 只看该作者

main()

{

P1IN_bit.P1 = 0;

P1IN_bit.P1 = 0;

unsigned char cnt_uc = 0;

unsigned char temp_uc = 0;

unsigned short time_us = 0;


while(1)

{

for(time_us  = 20000; time_us  > 0; time_us --);//延时

if (P1IN_bit.P1 = 1 &&  temp_uc = 0)//检测是否有新的脉冲到来

cnt_uc++;//脉冲计数

 temp_ucP1IN_bit.P1;//脉冲上升沿判断标志

}

=====================

先找本C语言的数好好看看吧






回复 支持 反对

使用道具 举报

1

主题

83

帖子

23

积分

新手上路

Rank: 1

积分
23
10#
发表于 2015-9-30 09:47 AM | 只看该作者

main()

{

P1IN_bit.P1 = 0;

P1IN_bit.P1 = 0;

unsigned char cnt_uc = 0;

unsigned char temp_uc = 0;

unsigned short time_us = 0;


while(1)

{

for(time_us  = 20000; time_us  > 0; time_us --);//延时

if (P1IN_bit.P1 = 1 &&  temp_uc = 0)//检测是否有新的脉冲到来

cnt_uc++;//脉冲计数

 temp_uc = P1IN_bit.P1;//脉冲上升沿判断标志

}

=====================

先找本C语言的数好好看看吧

回复 支持 反对

使用道具 举报

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

本版积分规则

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