TI论坛
直播中

黄鹏

7年用户 207经验值
私信 关注
[问答]

TM4C123g开发板的定时捕获模式如何重置这个定时器让它从零开始

我设置的是waitontrigger模式,捕获下降沿,触发一次中断后,应该定时器是不会中止,会继续运行的吧,那我如何重置这个定时器,让它从零开始,waitontrigger触发呢?求解

回帖(6)

冯敬宇

2018-8-15 06:52:39

参见P663 对timer 捕获说明
触发中断后,定时器不会终止,但是进入中断就可以获取此时count值。如果需要定时器计数值清0,你可以直接操作。更详细说明见附件中文数据手册。谢谢!
1 举报

黄鹏

2018-8-15 07:08:05
引用: guigui_7044 发表于 2018-8-15 06:52
参见P663 对timer 捕获说明
触发中断后,定时器不会终止,但是进入中断就可以获取此时count值。如果需要定时器计数值清0,你可以直接操作。更详细说明见附件中文数据手册。谢谢!

IntMasterEnable();
    IntEnable(INT_WTIMER2A);

    TimerConfigure(WTIMER2_BASE, (TIMER_CFG_SPLIT_PAIR |TIMER_CFG_A_CAP_TIME));
    TimerLoadSet(WTIMER2_BASE, TIMER_A, 0xFFFFFFFF);
    TimerControlEvent(WTIMER2_BASE, TIMER_A, TIMER_EVENT_NEG_EDGE);
    TimerControlWaitOnTrigger(WTIMER2_BASE, TIMER_A, true);

    TimerIntRegister(WTIMER2_BASE,TIMER_A,TimerIntHandler);

    TimerIntEnable(WTIMER2_BASE, TIMER_CAPA_EVENT);

    TimerEnable(WTIMER2_BASE, TIMER_A);
1.这是我初始化的的边沿计时模式,然后在中断程序中,如果我TimerDisable(WTIMER2_BASE, TIMER_A);再TimerEnable(WTIMER2_BASE, TIMER_A);这样可以将这个定时器重置,并且等待一个上升沿触发再开始计时么,求解
2.读取捕获时间我用的是TimerValueGet函数,这样应该会有一些延时吧,访问寄存器可以读取精确值,但是好像没有在数据手册中看到具体如何访问寄存器的函数之类的介绍,如果有具体介绍,麻烦能告诉我在哪里么
3.最后,我的板子是TM4C123GH6PM,你发给我的是LM4F232H5QD的数据手册,这两个差不多么?是不是核心一样,所以都无所谓。
谢谢回答
1 举报
  • 王哥哥: 你好,我最近也在学TM4C123这块板子,在做捕获这个功能,也是你相同的问题!忘前辈指路,QQ:1874078510!感激不尽

冯敬宇

2018-8-15 07:22:47
引用: YBJ_zjzjzx 发表于 2018-8-15 07:08
IntMasterEnable();
    IntEnable(INT_WTIMER2A);

PN是不一样,但是模块是一样,所以你完全可以放心参考。
举报

黄鹏

2018-8-15 07:30:37
引用: guigui_7044 发表于 2018-8-15 07:22
PN是不一样,但是模块是一样,所以你完全可以放心参考。

1.触发等待模式(Wait On Trigger)只能用于那个定时器菊花链模式么?不可以在边沿计数模式中等待一个 上升沿的信号再开始计时么?我设置向上计数的话,似乎会自动等待触发信号再开始计时,但是向下计数模式似乎不行。
2.TimerIntClear函数到底是什么作用呢?TimerIntClear(WTIMER2_BASE,TimerIntStatus(WTIMER2_BASE, TIMER_A, true));   和     TimerIntClear(WTIMER2_BASE,TIMER_CAPA_EVENT); 有什么区别呢?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分