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.

CCS/CC1310: Some questions about LBT

Part Number: CC1310

Tool/software: Code Composer Studio

hi,I have encountered some problems when I use LBT routines.

1.The configuration of this smartrf_settings, using the LRM mode, is exported via SmartRF studio.I replaced the smartrf_settings file and ran the example normally.

2.When I add some delays to this normal example, such as the delay caused by sleep or timer, after the routine runs for a while, the data is no longer sent.

Please help confirm the problem.Time is very urgent.Thanks!

This is my code:

void *mainThread(void *arg0)
{
RF_Params rfParams;
RF_Params_init(&rfParams);

/* Open LED pins */
ledPinHandle = PIN_open(&ledPinState, ledPinTable);
if (ledPinHandle == NULL)
{
while(1);
}

/* Customize the CMD_PROP_TX command for this application */
RF_cmdPropTx.pktLen = PAYLOAD_LENGTH;
RF_cmdPropTx.pPkt = packet;

/* Set up the next pointers for the command chain */
RF_cmdNop.pNextOp = (rfc_radioOp_t*)&RF_cmdPropCs;
RF_cmdPropCs.pNextOp = (rfc_radioOp_t*)&RF_cmdCountBranch;
RF_cmdCountBranch.pNextOp = (rfc_radioOp_t*)&RF_cmdPropTx;
RF_cmdCountBranch.pNextOpIfOk = (rfc_radioOp_t*)&RF_cmdPropCs;

/* Customize the API commands with application specific defines */
RF_cmdPropCs.rssiThr = RSSI_THRESHOLD_DBM;
RF_cmdPropCs.csEndTime = (IDLE_TIME_US + 150) * 4; /* Add some margin */
RF_cmdCountBranch.counter = CS_RETRIES_WHEN_BUSY;
RF_cmdNop.startTrigger.triggerType = TRIG_ABSTIME;
RF_cmdNop.startTrigger.pastTrig = 1;

/* Request access to the radio */
#if defined(DeviceFamily_CC26X0R2)
rfHandle = RF_open(&rfObject, &RF_prop, (RF_RadioSetup*)&RF_cmdPropRadioSetup, &rfParams);
#else
rfHandle = RF_open(&rfObject, &RF_prop, (RF_RadioSetup*)&RF_cmdPropRadioDivSetup, &rfParams);
#endif// DeviceFamily_CC26X0R2

/* Set the frequency */
RF_postCmd(rfHandle, (RF_Op*)&RF_cmdFs, RF_PriorityNormal, NULL, 0);

/* Get current time */
time1 = RF_getCurrentTime();

/* Run forever */
while(true)
{
sleep(10);
/* Create packet with incrementing sequence number & random payload */
packet[0] = (uint8_t)0x19;
memcpy(packet+1,&macAddress,8);
memcpy(packet+9,&CPUTemp,2);
memcpy(packet+11,&objectRTD,2);
memcpy(packet+13,&VOL,2);

/* Set absolute TX time to utilize automatic power management */
time1 += (PACKET_INTERVAL_US * 4);
RF_cmdNop.startTime = time1;

/* Send packet */
RF_runCmd(rfHandle, (RF_Op*)&RF_cmdNop, RF_PriorityNormal,&callback, 0);
// RF_postCmd(rfHandle, (RF_Op*)&RF_cmdNop, RF_PriorityNormal,NULL, 0);
RF_cmdNop.status = IDLE;
RF_cmdPropCs.status = IDLE;
RF_cmdCountBranch.status = IDLE;
RF_cmdPropTx.status = IDLE;
RF_cmdCountBranch.counter = CS_RETRIES_WHEN_BUSY;
}
}