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

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

[复制链接] qrcode

33

主题

40

帖子

119

积分

注册会员

Rank: 2

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

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


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

回复

使用道具 举报

0

主题

82

帖子

26

积分

新手上路

Rank: 1

积分
26
13#
发表于 2015-10-10 01:25 PM | 只看该作者
首先得知道脉冲的频率是多少
回复 支持 反对

使用道具 举报

38

主题

120

帖子

145

积分

注册会员

Rank: 2

积分
145
12#
发表于 2015-9-30 02:45 PM | 只看该作者

这个可以用定时器的捕获模式实现啊。参考下面的资料

style:normal;font-variant:normal;">当捕获/比较寄存器与定时器总线相连:可在满足捕获条件时,将 TAR 的值写入捕获寄存器;可在 TAR
的值与比较器值相等时,设置标志位。通过 TACCTLx 中的 CAP 选择模式,该模块既可用于捕获模式,也
可用于比较模式。用 CMx 选择捕获条件,可以禁止捕获,上升沿捕获,下降沿捕获或者上下沿都捕获。
可用 CCISx 选择捕获的输入信号源,输入信号可以来自外部引脚,也可来自内部信号,还可暂存在一个触
发器中由 SCCI 信号输出。
[1] 捕获模式
当 TACCTLx 中的 CAP=1,该模块工作在捕获模式,这时如果在选定的引脚上发生设定的脉冲触发沿
(上升沿,下降沿或任意跳变) ,则 TAR 中的值将写到 TACCRx 中。
每个捕获/比较寄存器都能被软件用于时间标记,可用于各种目的。例如,测量软件程序所用时间,测
量硬件事件间的时间,测量系统频率。

回复 支持 反对

使用道具 举报

0

主题

91

帖子

18

积分

新手上路

Rank: 1

积分
18
11#
发表于 2015-9-30 09:48 AM | 只看该作者
那个if里的=换成==
回复 支持 反对

使用道具 举报

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语言的数好好看看吧

回复 支持 反对

使用道具 举报

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语言的数好好看看吧






回复 支持 反对

使用道具 举报

0

主题

88

帖子

12

积分

新手上路

Rank: 1

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

使用道具 举报

0

主题

75

帖子

12

积分

新手上路

Rank: 1

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

使用道具 举报

0

主题

77

帖子

22

积分

新手上路

Rank: 1

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

使用道具 举报

0

主题

82

帖子

4

积分

新手上路

Rank: 1

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

使用道具 举报

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

本版积分规则

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