This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于TM4C123g开发板的定时捕获模式的问题

Other Parts Discussed in Thread: TM4C123GH6PM

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

  • 参见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的数据手册,这两个差不多么?是不是核心一样,所以都无所谓。

    谢谢回答

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

  • 1.触发等待模式(Wait On Trigger)只能用于那个定时器菊花链模式么?不可以在边沿计数模式中等待一个 上升沿的信号再开始计时么?我设置向上计数的话,似乎会自动等待触发信号再开始计时,但是向下计数模式似乎不行。

    2.TimerIntClear函数到底是什么作用呢?TimerIntClear(WTIMER2_BASE,TimerIntStatus(WTIMER2_BASE, TIMER_A, true));   和     TimerIntClear(WTIMER2_BASE,TIMER_CAPA_EVENT); 有什么区别呢?

  • TimerIntClear(WTIMER2_BASE,TimerIntStatus(WTIMER2_BASE, TIMER_A, true));   和     TimerIntClear(WTIMER2_BASE,TIMER_CAPA_EVENT); 

    这两者的区别在于,前者清除的是TimerIntStatus(WTIMER2_BASE, TIMER_A, true)这个函数取到的标志

    后者是直接清除这个标志的,相当于前者加入了一个判断。