if(((uint8_t*)data)[0]==SI446X_CMD_IRCAL)// If we're doing an IRCAL then wait for its completion without a timeout since it can sometimes take a few seconds
@ -1721,9 +1723,12 @@ void SI446x_Fill(int s, int start)
inti=start;
uint8_tdata[3];
do{
again:
data[0]=SI446X_CMD_GET_MODEM_STATUS;
data[1]=0xFF;
SI4463_do_api(data,2,data,3);
SI4463_do_api(data,1,data,3);// TODO no clear of interrups
if(data[2]==0)gotoagain;
if(data[2]==255)gotoagain;
age[i]=(char)data[2];
if(++i>=sweep_points)break;
if(t)
@ -1770,22 +1775,22 @@ int16_t Si446x_RSSI(void)
SI4463_frequency_changed=false;
}
intj=3;//setting.repeat;
intj=1;//setting.repeat;
intRSSI_RAW_ARRAY[3];
do{
again:
data[0]=SI446X_CMD_GET_MODEM_STATUS;
data[1]=0xFF;
SI4463_do_api(data,2,data,3);
SI4463_do_api(data,2,data,3);// TODO no clear of interrupts
if(data[2]==255){
my_microsecond_delay(10);
gotoagain;
}
RSSI_RAW_ARRAY[--j]=data[2]-120*2;
RSSI_RAW_ARRAY[--j]=data[2];
if(j==0)break;
my_microsecond_delay(100);
my_microsecond_delay(20);
}while(1);
#if 1
#if 0
intt;
if(RSSI_RAW_ARRAY[0]>RSSI_RAW_ARRAY[1]){
t=RSSI_RAW_ARRAY[1];
@ -2128,6 +2133,10 @@ const int SI4432_RBW_count = ((int)(sizeof(RBW_choices)/sizeof(RBW_t)));