Hello All,
I have a custom board which based on cc1312R. I have RF_Buffer which has1000 byte length (one packet). I am transmitting this buffer to the receiver one time in every 8 second. Rf_buffer contains only fixed number.
I am able to send this buffer during around 4 minute. For one minute 7-8 packet, totally I could send 28-30 packet. But after that there is no more transmission. Because The program doesnt enter inside txtaskfunction anymore.
I use this parameters.
#define TX_STACK_SIZE 512
PAYLOAD_LENGTH = 1000
unsigned char RF_Buffer[PAYLOAD_LENGTH+2];
void txTaskFunction(UArg arg0, UArg arg1) { uint16_t index_2; uint32_t RFtime; RF_Params rfParams; RF_Params_init(&rfParams); if( RFQueue_defineQueue(&dataQueue, rxDataEntryBuffer, sizeof(rxDataEntryBuffer), NUM_DATA_ENTRIES, MAX_LENGTH + NUM_APPENDED_BYTES)) { while(1);} RF_cmdPropTxAdv.pktLen = PAYLOAD_LENGTH+2; RF_cmdPropTxAdv.pPkt = RF_Buffer; RF_cmdPropTxAdv.startTrigger.triggerType = TRIG_ABSTIME; RF_cmdPropTxAdv.startTrigger.pastTrig = 1; if (!rfHandle){ rfHandle = RF_open(&rfObject, &RF_prop, (RF_RadioSetup*)&RF_cmdPropRadioDivSetup, &rfParams); RF_postCmd(rfHandle, (RF_Op*)&RF_cmdFs, RF_PriorityNormal, NULL, 0); } RFtime = RF_getCurrentTime(); while(1) { Semaphore_pend(semTxHandle, BIOS_WAIT_FOREVER); { RF_Buffer[1]=(uint8_t)(PAYLOAD_LENGTH >> 8); RF_Buffer[0]=(uint8_t)(PAYLOAD_LENGTH); for(index_2 = 2; index_2 < PAYLOAD_LENGTH+2; index_2 ++) { RF_Buffer[index_2] = ALL_Buffer[index_2-2]; } RF_Buffer[1000]='\r'; RF_Buffer[1001]='\n'; RFtime += PACKET_INTERVAL; RF_cmdPropTxAdv.startTime = RFtime; RF_EventMask result = RF_runCmd(rfHandle, (RF_Op*)&RF_cmdPropTxAdv, RF_PriorityNormal, NULL, 0); if (!(result & RF_EventLastCmdDone)) { while(1);} } memset(RF_Buffer, 0, sizeof(RF_Buffer)); PIN_setOutputValue(hPin, STA_LED,!PIN_getOutputValue(STA_LED)); } }
What do you think about this problem? what can it be block data trasmission or to enter inside txtaskfunction after minute.
thank you
BR
Bekir