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.

[参考译文] CC2640R2F:其他 Event_post 不起作用?

Guru**** 2589245 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/598822/cc2640r2f-additional-event_post-does-not-work

器件型号:CC2640R2F

您好!

  我在应用程序中使用了 Event_post、它起作用。 但是、我添加的最后一个 Event_post 不起作用。 事件 ID 为17

#define SBP_CWQ_TEST_EVT            EVENT_ID_17  

  我设置了一个一次性时钟计时器、该计时器将运行10秒。 下面是我的时钟初始化。

Util_constructClock (&CWTestClock、TestApp_CWTimeout、
SBP_CW_EVT_PERIOD、0、false、SBP_CWQ_TEST_EVT); 

  我在 TestApp__CWTestExe()上启动 CWTestClock。  

void TestApp_CWTestExe (void)
{
Util_startClock (&CWTestClock);
UartApp_WriteString ("CW 测试已启动。\r\n");
HCI_EXT_ModemTestTxCmd (HCI_EXT_TX_UNMODEG_CARRIER、39);
} 

 然后它将转到时钟处理程序 TestApp_CWTimeout()。 我通过了 SBP_CWQ_TEST_EVT。

void TestApp_CWTimeout (UArg_arg)
{
EVENT_POST (syncdevent、arg);//由 Markel 添加

} 

 我运行该程序、但它没有进入主任务的事件处理程序。

IF (事件和 SBP_CWQ_TEST_EVT)
{
Util_stopClock (&CWTestClock);
HCI_EXT_EndModemTestCmd ();
} 

 为了使 Event_post 正常工作、我需要对代码进行哪些更改?

-克尔

  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您或事件是否发生在主任务中?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、在事件处理程序下面

    IF (事件和 SBP_CWQ_TEST_EVT)

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

    这就是我的意思:

    #define SBP_All_Events (SBP_ICALL_EVT |\
    
    SBP_queue_EVT |\
    
    SBP_Period_EVT |\
    
    SBP_Pairing_State_EVT) 

    主任务是挂起打开   

    事件= Event_pend (syncEvent、Event_ID_none、SBP_All_Events

                iCall_TIMEOUT_FOREVER);

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

    尊敬的 Christin:

       是的、我在 SBP_All_Events 中添加了。

      我怀疑 HCI_EXT_ModemTestTxCmd ()与问题有关。 在 HCI_EXT_ModemTestTxCmd 之前调用 Util_startClock()和 UartApp_WriteString()的原因是,如果我在 HCI_EXT_ModemTestTxCmd()之后调用这两个代码行,则不会发生 Util_startClock()。

    怀疑 HCI 代码:

     Util_startClock (&CWTestClock);

      UartApp_WriteString ("CW 测试已启动。\r\n");

      HCI_EXT_ModemTestTxCmd (HCI_EXT_TX_UNMODEG_CARRIER、39);

     

    -克尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否完成了此问题? 我有一些问题。