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/CC1310:RF 中断与状态之间的关系

Guru**** 2551640 points


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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/779371/rtos-cc1310-relationship-between-rf-interrupts-and-status

器件型号:CC1310

工具/软件:TI-RTOS

您好,团队

我对射频命令:的执行有一些疑问

1.rf_runCmd (rfHandle、(rf_Op*)&rf_cmdPropRxSniff、rf_PriorityNormal、&callback、rf_EventRxEntryDone);

  使用 runcmd 执行命令时、任务是否会在此 API 中阻止?

中断是先执行还是先执行状态?

/*记录 RX_Sniff 状态*/
switch (rf_cmdPropRxSniff.status){
PROP_DONE_IDLE 情况:
/*基于 RSSI 的空闲*/
worStatistics.tonIde++;
中断;
案例 PROP_DONE_IDLETIMEOUT:
/*基于 PQT 的空闲*/
worStatistics.donIdleTimeout++;
中断;
案例 PROP_DONE_RXTIMEOUT:
/*在空中获得有效前导码,但未找到同步字*/
worStatistics.tonRexTimeout++;
中断;
案例 PROP_DONE_OK:
/*接收到的数据包*/
worStatistics.tonosk++;
中断;
默认值:
/*未处理状态*/
中断;
};

//调用每个接收到的数据包和命令完成*/
void callback (rf_handle h、rf_CmdHandle ch、rf_EventMask e)
{
/*如果我们收到了一个新的数据包,它可以读出*/
IF (e 和 RF_EventRxEntryDone)
{
操作
{
/*在 RX 上切换 LED */
PIN_setOutputValue (ledPinHandle、Board_PIN_LED1、!PIN_getOutputValue (Board_PIN_LED1));

/*获取当前未处理的数据输入*/
currentDataEntry = RFQueue_getDataEntry();

/*处理位于&currentDataEntry->data 的数据包数据:
*-长度是当前配置的第一个字节
*-数据从第二个字节开始*/
电池组长度 =*(uint8_t*)(&currentDataEntry->data);
packetDataPointer =(uint8_t*)(&currentDataEntry->data+1);

/*添加此代码块是为了避免编译器警告。
*通常,应用程序将引用这些变量
*有用数据。 *
虚拟= packetLength + packetDataPointer[0];

} while (RFQueue_nextEntry ()= data_entry_finished);
}
} 

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

    1) 1)是的。

    2) 2)我不确定您的代码片段的上下文。 我不能说在哪个上下文中执行与回调相关的切换案例。 让我用这种方式来表示:例如,调用 rf_runCmd ()时,如果注册了回调,则每次发生一个或多个已注册的 RF 事件时都会调用回调。 当 RF 命令完成时,RF_runCmd()返回,您可以像在切换情况下那样检查命令的状态。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Severin Suveren,
    我复制了 rfPacketRx 示例中的代码、我认为您是对的。 此外、当 runcmd 执行命令时、射频内核进入空闲状态?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    仅当射频内核上没有正在运行的射频命令、射频队列中没有其他射频命令、并且射频驱动器中的不活动断电配置尚未满足时、射频内核才会进入空闲状态。

    调用 rf_runCmd ()时,运行计划的 rf 命令时,射频内核处于活动状态。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、谢谢 Severin Suveren!