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/LAUNCHXL-CC2650:任务:动态更改 arg0和 Task_sleep 限制

Guru**** 2587365 points
Other Parts Discussed in Thread: CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/598393/rtos-launchxl-cc2650-task-changing-arg0-on-the-fly-and-limit-of-task_sleep

器件型号:LAUNCHXL-CC2650
Thread 中讨论的其他器件:CC2650

工具/软件:TI-RTOS

您好!

对于我的项目、我将从示例"project_zero_app_cc2650launchxl"开始

我的目标是根据特定频率使板载 LED0闪烁。

为此、我创建了一个专用任务、arg0是参考频率。 但是、我可以动态更改 arg0吗? (例如、每当我按下板载按钮时)

1_我的解决方案是删除当前任务并重新创建一个新任务以指定新的 arg0、但是否有简单地修改当前任务的 arg0的意义?

   案例 Board_Button1:


     ButtonService_SetParameter (BS_Button1_ID、
                                sizeof (pState->state)、
                                pState->state (&P);

     log_info0 ("由于 Button1而删除我的任务");

     Task_delete (&Task_Handle_LED);

     频率=频率- 25000;

   //将创建新任务

   Task_Params_init (&taskParams);
     taskParams.arg0 =频率/时钟_tickPeriod;
     taskParams.STACKSIZE = TASKSTACKSIZE;
     taskParams.stack =_task0Stack;
     Task_handle_LED = Task_create ((Task_FuncPtr) LEDtaskFxn、&taskParams、NULL);


     log_info0 ("我的任务已重新创建");


     中断;

 

2_also、如果 "taskParams.arg0"的值为 25000、则 CC2650 LaunchPad 会阻止、我有一个奇怪的行为、并且必须将其复位以使其再次运行。

你有解释吗?  

(这与 Task_sleep 相关、对于 INFO、 Clock_tickPeriod = 10)

 

谢谢!

John MC。

 

 

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

    创建使 LED 闪烁的任务似乎比必要任务复杂得多。 您是否考虑过使用时钟实例并将事件发布到您的任务?

    祝你一切顺利
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    注意:您还可以更改时钟实例被调用的频率。 时钟功能还可以根据需要切换 LED。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    JXS

    好的、感谢您的反馈、我将探讨时钟实例、是的、这是一个想法(我在这种芯片上有点新)。

    我的最终目的是让 Neopixels 闪烁、因此这个时钟解决方案可能适合这种情况。

    John MC。