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.

[参考译文] RTOS/TM4C1294NCPDT:Timer_con构、有没有方法来启动/停止计时器?

Guru**** 2482225 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/717672/rtos-tm4c1294ncpdt-timer_construct-is-there-way-to-start-stop-timer

器件型号:TM4C1294NCPDT

工具/软件:TI-RTOS

timer_create(...) 提供允许 Timer_Start ()和 Timer_Stop ()的句柄。 但是 Timer_construct()不提供使用 START/STOP 所需的句柄或 ID

基于 Timer_construct(),有没有方法可以启动/停止计时器,如果有,请提供代码。 如何从 ID 为 Timer_any 的已构建计时器中提取句柄。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很少有其他查询、我使用的是 CCS8.0和 BIOS 6_45_01_29

    (1)允许我使用一个计时器还是多个计时器?

    (2)当我执行此操作时、程序崩溃。 我已经检查了用户手册,在代码中找不到问题。。

    Timer_handle RFD_FIFOTest_Timer_Handle;
    
    Timer_Params RFD_FIFOTest_TimerParams;
    
    void RFD_DM_FIFOTest_SetupTimer (void)
    {
    zMODBUSOpFlags.isFIFOTestEmulationSysTick = 1;
    Error_Block EB;
    Error_init (&EB);
    //--- 设置100mSec 事件。
    
    Timer_Params_init (&RFD_FIFOTest_TimerParams);
    RFD_FIFOTest_TimerParams.periodType = Timer_PeriodType_micros;//用例中的周期(默认)
    RFD_FIFOTest_TimerParams.runMode = Timer_RunMode_Continuous;//连续运行(默认)
    RFD_FIFOTest_TimerParams.ti_Start_User_Timer_Control = Timer_Start_User_Start_Start_Timer_Timer_Timer_Timer_Timer_Timer_Timer_Timer_TimerPartams.h。
    RFD_FIFOTest_TimerParams.Period = 10000;// 10000 uSecs = 10ms
    // handle = Timer_create (int id、ITIMer_Functr tickFxn、const Timer_Params *参数、Error_Block * EB);
    
    RFD_FIFOTest_Timer_handle = Timer_create (Timer_any、Timer_any、 (Timer_FuncPtr) RFD_FIFOEMUADC24_TimerFxn、&RFD_FIFOTest_TimerParams、&EB);
    IF (RFD_FIFOTest_Timer_Handle=NULL)
    {
    System_abort ("RFD_FIFOTest_Timer_Handle create failed");
    };
    }{RFD_FIFOTE_TimerXn
    
    (void FF_RFARG…
    
    ………失效
    

    (3)当我读取时、RTOS 定时器将 Timer0与时钟一起使用、对吧?我没有附加代码(TivaWare) Timer0和1。 我使用手动编写的 RTOS 代码 HWI/SWI/SEMP 将几个 TivaWare 代码连接到其他计时器(2、3、4、5、6)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Richard、

    构造时,需要将结构转换为句柄。 详情请见以下网页 :processors.wiki.ti.com/.../TI-RTOS_Object_Creation_Comparison

    时钟模块默认为获取 TM4C 的一个 GP 计时器。 您可以创建其他文件。 您需要检查您的器件以查看有多少。 默认情况下、它获取一个空闲的(Timer_any)。 通常这是0、因为.cfg 文件中没有创建其他计时器。 您可以查看 Tools->ROV 来确认这一点。

    代码对我来说看起来很好。 它何时崩溃?

    Todd

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外,您能否检查 ROV->BIOS->Scan for Errors 以查看是否有堆栈被熔断。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是否得到了解决?

    [更新8/16:标记 TI 认为已解决、因为不活动]

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很抱歉我休假了、感谢您的结束、一切都很好。 我废除了计时器并采用了替代解决方案。

    现在我已经了解、无法从创建的对象获取句柄、只能从构造的对象获取句柄、  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Richard Payne"]据我现在所知,无法从创建的对象获取句柄,只能从构造的对象获取 [/引用]

    句柄从返回 创建调用(_E)。