查看: 2875|回复: 1

[原创] [我为LPC代言] 实验六 中断脉冲输入实验

[复制链接]
  • TA的每日心情
    开心
    2019-2-14 16:49
  • 签到天数: 296 天

    连续签到: 1 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
    发表于 2016-12-18 20:51:34 | 显示全部楼层 |阅读模式
    实验六 中断脉冲输入实验
    如题,因此需要打开InteruptIn.h文本查看。实例中可以看到与实验五一样的需要定义1个对象,编1个中断函数,而后绑定这两者即可。首先在前部定义时钟对象后一行写:
    InterruptIn plusIn28(P0_28);
    定义P0_28位中断输入口。为了计数中断口的数值,定义一个16位的变量pj28,加在16位变量行中:
    int16_t pj28;
    之后在写中断函数:
    void PlusIn28(void){wait(0.001f);if(P0_28) pj28++;}
    前边的wait(0.001f)数值要小于输入的数值,本例打算用P0_27的100Hz信号输入,意即,中断产生后延时0.001秒P0_28还是高,pj28增加。
    在main的循环语句前增加:
    plusIn28.rise(&PlusIn28);
    上升沿触发中断,执行中断函数PlusIn28。
    为了显示结果,在dispBase中增加:
    c2l(0,4,25);c2l(1,4,19);c2l(2,4,2);c2l(3,4,8);//PJ28
    在dispMes中增加:
    c2l(5,4,(pj28/100)%10);c2l(6,4,(pj28/10)%10);c2l(7,4,(pj28)%10);
    显然ps28的数值超过3位就显示后3位了,可以增加的。
    这也是中断执行的,主程序中没有语句。将P0_27与P0_28短路,下载运行结果见图61。

    61-中断脉冲计数

    61-中断脉冲计数
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2025-1-21 08:52
  • 签到天数: 861 天

    连续签到: 1 天

    [LV.10]以坛为家III

    75

    主题

    2523

    帖子

    24

    金牌会员

    Rank: 6Rank: 6

    积分
    5867
    最后登录
    2025-1-22
    发表于 2016-12-19 13:19:45 | 显示全部楼层
    谢谢分享
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 18:12 , Processed in 0.080375 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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