mirror of
git://projects.qi-hardware.com/ben-wpan.git
synced 2024-11-29 13:01:33 +02:00
atrf-path/atrf-path.c: initialize the receiver only once, not for each sweep
atrf-path -g ... 10 10 time: before 2.08 s after 1.92-1.93 s (92-93%) - atrf-path.c (set_channel, init_common): moved setting of the channel to separate function, for better granularity - atrf-path.c (init_common, init_tx, init_rx, sample, do_sweep): the init_* functions no longer set the channel; use set_channel - atrf-path.c (main): initialize the receiver only once
This commit is contained in:
parent
436c9faed5
commit
5f153ca4b8
@ -29,26 +29,31 @@
|
|||||||
#define DEFAULT_POWER 15
|
#define DEFAULT_POWER 15
|
||||||
|
|
||||||
|
|
||||||
static void init_common(struct atrf_dsc *dsc, int trim, int chan)
|
static void set_channel(struct atrf_dsc *dsc, int chan)
|
||||||
|
{
|
||||||
|
atrf_reg_write(dsc, REG_PHY_CC_CCA, (1 << CCA_MODE_SHIFT) | chan);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void init_common(struct atrf_dsc *dsc, int trim)
|
||||||
{
|
{
|
||||||
atrf_reg_write(dsc, REG_TRX_STATE, TRX_CMD_TRX_OFF);
|
atrf_reg_write(dsc, REG_TRX_STATE, TRX_CMD_TRX_OFF);
|
||||||
atrf_reg_write(dsc, REG_XOSC_CTRL,
|
atrf_reg_write(dsc, REG_XOSC_CTRL,
|
||||||
(XTAL_MODE_INT << XTAL_MODE_SHIFT) | trim);
|
(XTAL_MODE_INT << XTAL_MODE_SHIFT) | trim);
|
||||||
atrf_set_clkm(dsc, 0);
|
atrf_set_clkm(dsc, 0);
|
||||||
atrf_reg_write(dsc, REG_PHY_CC_CCA, (1 << CCA_MODE_SHIFT) | chan);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void init_tx(struct atrf_dsc *dsc, int trim, int power, int chan)
|
static void init_tx(struct atrf_dsc *dsc, int trim, int power)
|
||||||
{
|
{
|
||||||
init_common(dsc, trim, chan);
|
init_common(dsc, trim);
|
||||||
set_power_step(dsc, power, 0);
|
set_power_step(dsc, power, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void init_rx(struct atrf_dsc *dsc, int trim, int chan)
|
static void init_rx(struct atrf_dsc *dsc, int trim)
|
||||||
{
|
{
|
||||||
init_common(dsc, trim, chan);
|
init_common(dsc, trim);
|
||||||
atrf_reg_write(dsc, REG_TRX_STATE, TRX_CMD_RX_ON);
|
atrf_reg_write(dsc, REG_TRX_STATE, TRX_CMD_RX_ON);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -66,7 +71,8 @@ static void sample(const struct sweep *sweep, int chan, int cont_tx,
|
|||||||
int sum = 0, min = -1, max = -1;
|
int sum = 0, min = -1, max = -1;
|
||||||
double offset = tx_power_step2dBm(sweep->tx, sweep->power);
|
double offset = tx_power_step2dBm(sweep->tx, sweep->power);
|
||||||
|
|
||||||
init_tx(sweep->tx, sweep->trim_tx, sweep->power, chan);
|
init_tx(sweep->tx, sweep->trim_tx, sweep->power);
|
||||||
|
set_channel(sweep->tx, chan);
|
||||||
usleep(155); /* table 7-2, tTR19 */
|
usleep(155); /* table 7-2, tTR19 */
|
||||||
|
|
||||||
cw_test_begin(sweep->tx, cont_tx);
|
cw_test_begin(sweep->tx, cont_tx);
|
||||||
@ -90,7 +96,6 @@ static void sample(const struct sweep *sweep, int chan, int cont_tx,
|
|||||||
res->avg = rssi_to_dBm((double) sum/sweep->samples)-offset;
|
res->avg = rssi_to_dBm((double) sum/sweep->samples)-offset;
|
||||||
res->min = rssi_to_dBm(min)-offset;
|
res->min = rssi_to_dBm(min)-offset;
|
||||||
res->max = rssi_to_dBm(max)-offset;
|
res->max = rssi_to_dBm(max)-offset;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -99,7 +104,7 @@ void do_sweep(const struct sweep *sweep, struct sample *res)
|
|||||||
int chan;
|
int chan;
|
||||||
|
|
||||||
for (chan = 11; chan <= 26; chan++) {
|
for (chan = 11; chan <= 26; chan++) {
|
||||||
init_rx(sweep->rx, sweep->trim_rx, chan);
|
set_channel(sweep->rx, chan);
|
||||||
sample(sweep, chan, CONT_TX_M500K, res++);
|
sample(sweep, chan, CONT_TX_M500K, res++);
|
||||||
sample(sweep, chan, CONT_TX_P500K, res++);
|
sample(sweep, chan, CONT_TX_P500K, res++);
|
||||||
}
|
}
|
||||||
@ -237,6 +242,7 @@ int main(int argc, char **argv)
|
|||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
sweep.power = 15-power;
|
sweep.power = 15-power;
|
||||||
|
init_rx(sweep.rx, sweep.trim_rx);
|
||||||
if (graphical)
|
if (graphical)
|
||||||
gui(&sweep, sweeps);
|
gui(&sweep, sweeps);
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user