TI中文支持网
TI专业的中文技术问题搜集分享网站

CC1310 status问题

假如有一个命令链由TX->RX组成,如果我想查询两个命令的status,是否可以这样?

RF_EventMask terminationReason =RF_runCmd(rfHandle, (RF_Op*)&RF_cmdPropTx, RF_PriorityNormal,
echoCallback, (RF_EventCmdDone | RF_EventRxEntryDone |RF_EventLastCmdDone));

switch(RF_cmdPropTx->status)

switch(RF_cmdPropRx->status)

我理解的是runcmd阻塞任务直到命令链完成,然后再查询status,对吗?

Alvin Chen:

是这样的。runcmd是堵塞的。

user4959119:

回复 Alvin Chen:

恩的,我现在想实现这样一种功能,RF_cmdPropRxSniff.pNextOp = (rfc_radioOp_t *)&RF_cmdPropTxAdv;RF_cmdPropRxSniff.condition.rule = COND_STOP_ON_FALSE;RF_cmdPropTxAdv.startTrigger.triggerType = TRIG_REL_PREVEND;

当接收命令执行完成后延时100ms再发送,那么在执行发送命令之前我可能需要完成一些其他操作,但这些操作都是为发送而准备的。如执行读取I2C数据放到发送包里,修改发送参数RF_cmdPropTxAdv.startTime、RF_cmdPropTxAdv.pktLen。

1.如果读取I2C超过100ms,是不是有包还没填充好就发送了的风险?
2.如何在发送命令执行前把参数修改了,代码放在这个位置行吗,但我感觉阻塞之后发送命令已经执行完了才能执行到这。case PROP_DONE_OK:/* Received packet */RF_cmdPropTxAdv.startTime = RF_convertMsToRatTicks(100);break;

Alvin Chen:

回复 user4959119:

你应该说肯定会有这个风险,建议是做一个flag 当填充完毕后采取发包,而不是定时去发包。

user4959119:

回复 Alvin Chen:

我主要是为了让它们发送的时基一样,然后按时间片挨个上传,首先说我这个思路能实现这个功能吗?

Alvin Chen:

回复 user4959119:

理论上可以,你去试试看,但是感觉你这个固定时间有些风险。

user4959119:

回复 Alvin Chen:

我感觉也有风险,试了下可以。但是有个疑问就是上面我的问题2,我把相关时间放在这里
switch(RF_cmdPropRxSniff.status)
{case PROP_DONE_OK:/* Received packet */RF_cmdPropTxAdv.startTime = RF_convertMsToRatTicks(100);break;
}
如果runcmd是阻塞执行的话,不是得阻塞到整个命令链执行完吗?但是实际测试是修改可以在执行发送命令前,这个矛盾我无法理解,大哥给解释一下。

赞(0)
未经允许不得转载:TI中文支持网 » CC1310 status问题
分享到: 更多 (0)