Hi everyone,
How can i modify the ez430's demo program for getting RSSI data in dBm? The demo program shows the RSSI in %.
I'm looking the demo program's code but i cant find a solution for dBm. The datasheet says that;
1) Read the RSSI status register
2) Convert the reading from a hexadecimal
number to a decimal number (RSSI_dec)
3) If RSSI_dec ≥ 128 then RSSI_dBm =
(RSSI_dec - 256)/2 – RSSI_offset
4) Else if RSSI_dec < 128 then RSSI_dBm =
(RSSI_dec)/2 – RSSI_offset
void transmitData(int addr, signed char rssi, char msg[MESSAGE_LENGTH] )
{
char addrString[4];
char rssiString[3];
volatile signed int rssi_int;
addrString[0] = '0';
addrString[1] = '0';
addrString[2] = '0'+(((addr+1)/10)%10);
addrString[3] = '0'+((addr+1)%10);
rssi_int = (signed int) rssi;
if (rssi_int >= 128) RSSI_DBM = (int)((int )(rssi_int - 256) / 2) - 72; else RSSI_DBM = (rssi_int / 2) - 72;
rssiString[0] = '0'+(rssi_int%10);
rssiString[1] = '0'+((rssi_int/10)%10);
rssiString[2] = '0'+((rssi_int/100)%10);
transmitDataString( addrString, rssiString, msg );
}
i made modifications but RSSI data is not shown true. Any help?
thanks a lot