现在想做一个发射终端间隔自动修改发射功率的问题,请大家来出出点子
这个意思不是太明白啊,是要低功耗,还是就是要降低发送功率,让接受不到。低功耗专门有LPMx的设置实现,而RSSI主要和距离有关系,反应的是接受强度。
主动降低发射功率应该是有一个寄存器写入就可以实现的,但是没有试过,不大熟悉。
cc2530的芯片,在协议栈中写好程序,启动之后然后程序自动从最低功耗开始,到最高功耗,时间间隔2s
现在我用的是Ember357芯片,采用的软件版本是EmberZNet4.3.0-GA,我实现了一个射频测试自动切换的程序,代码如下:EmberStatus status;
isaac_time = halCommonGetInt32uMillisecondTick();
if ( (int16u)(isaac_time - isaac_lastBlinkTime) > TICKS_12_SECOND )
{
isaac_lastBlinkTime = isaac_time;
static int32u flag = 0;
if(flag%2 == 0)
{
emberSerialWaitSend(APP_SERIAL);//*
//mfgChannel = 25;
status = mfglibStart(NULL);
if (status == EMBER_SUCCESS)
{
mfglibSetChannel(isaac_mfgChannel);
emberSerialPrintf(APP_SERIAL, "===isaac_mfgChannel:%d\r\n",isaac_mfgChannel);
isaac_mfgChannel++;
if(isaac_mfgChannel == 26)
{
isaac_mfgChannel = 11;
}
status=mfglibSetPower(mfgTxPowerMode,mfgTxPower);
status = mfglibStartTone();
if (status == EMBER_SUCCESS)
{
halSetLed(BOARDLED_GREEND);
}
}
}
else
{
mfglibStopTone();
mfglibEnd();
halClearLed(BOARDLED_GREEND);
}
flag++;
}