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.

[参考译文] CC2538:跳出当前事件

Guru**** 2551110 points


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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/678125/cc2538-jump-out-of-the-current-event

器件型号:CC2538

我的代码现在遇到了一个问题。 我在我的应用中设计了一个事件、可以每20-100毫秒自行回收一次、然后在某个时间、当一个参数变为1000时、我想跳出 EVT1、我该怎么做? 我不想单击该按钮、只想让系统在 EVT1参数达到1000时自动退出 EVT1。

此致

 王西安

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否详细说明您如何在应用中实现这一点、以便我可以提出建议以做什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请详细说明您的实施情况。 您可以使用'break;'语句从 C 语言中的代码块中跳出。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢你的答复。
    我只是执行 osal_start_timerEx (zclGenericApp_TaskID、GENERICAPP_EVT_1、20);当我在应用程序中按3时。
    然后、在 EVT_1中、我向其他节点发送一些数据包、然后随着计数器增加一个而更改一个参数、然后执行 osal_start_timerEx (zclGenericApp_TaskID、GENERICAPP_EVT_1、20);再次返回到同一个 EVT 以执行相同的操作。 在最后一步中、如果参数高达1000、那么我将停止此数据包发送数据包。 我没有完成所有代码、事件中的基本过程如下所示、

    if (事件和 GENERICAPP_EVT_1)

    //在此处将数据包发送到其他节点。
    if (Pn <Limit)

    Pn++;

    其他

    //停止发送数据包并从 EVT_1中退出。


    OSAL_START_timerEx (zclGenericApp_TaskID、GENERICAPP_EVT_1、20);
    返回(事件^ GENERICAPP_EVT_1);


    问题是如何写入 else {}。

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

    也许可以这样做:

    if (Events & GENERICAPP_EVT_1)
    {
    //在此处向其他节点发送数据包。
    if (Pn <Limit) { Pn++; osal_start_timerEx( zclGenericApp_TaskID, GENERICAPP_EVT_1, 20 ); } return ( events ^ GENERICAPP_EVT_1 ); }
    
    
    
    
    
    
    

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