• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

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

蓝雨LOVE诗 2015-09-28 浏览量:2005

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


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

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 设置一个100ms的定时器,去检测那个IO口是否出现上升沿即可;如果你用的那个IO口可以接外部中断,直接用中断计数。如果你是初学者,只想试验下,主程序里while(1)循环直接检测就好。
    • 发布于 2015-09-28
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:11

  • 要不要用计数器/定时器呢?可以直接统计吗?
    • 发布于2015-09-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以通过外部中断,这样在检测过程中还能处理其它事,如果还需要检测脉冲宽度的话,就需要用定时器的输入捕获了
    • 发布于2015-09-28
    • 举报
    • 评论 0
    • 0
    • 0

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






    • 发布于2015-09-30
    • 举报
    • 评论 0
    • 0
    • 0

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

    • 发布于2015-09-30
    • 举报
    • 评论 0
    • 0
    • 0

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

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

    • 发布于2015-09-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 首先得知道脉冲的频率是多少
    • 发布于2015-10-10
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

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