cc2420: mask FSCTRL register for frequency access
This commit is contained in:
parent
199736d8db
commit
f23e7f90d2
@ -162,7 +162,9 @@ int cc2420_set_channel(unsigned int chan)
|
|||||||
/*
|
/*
|
||||||
* calculation from http://www.ti.com/lit/ds/symlink/cc2420.pdf p.50
|
* calculation from http://www.ti.com/lit/ds/symlink/cc2420.pdf p.50
|
||||||
*/
|
*/
|
||||||
uint16_t freq = 357 + (5 * (chan - 11));
|
uint16_t freq= cc2420_read_reg(CC2420_REG_FSCTRL);
|
||||||
|
freq &= ~CC2420_FREQ_MASK;
|
||||||
|
freq |= (357 + (5 * (chan - 11)));
|
||||||
cc2420_write_reg(CC2420_REG_FSCTRL, freq);
|
cc2420_write_reg(CC2420_REG_FSCTRL, freq);
|
||||||
return ((unsigned int) chan);
|
return ((unsigned int) chan);
|
||||||
}
|
}
|
||||||
@ -170,7 +172,7 @@ int cc2420_set_channel(unsigned int chan)
|
|||||||
unsigned int cc2420_get_channel(void)
|
unsigned int cc2420_get_channel(void)
|
||||||
{
|
{
|
||||||
/* undo calculation from cc2420_set_channel() */
|
/* undo calculation from cc2420_set_channel() */
|
||||||
return ((cc2420_read_reg(CC2420_REG_FSCTRL) - 357) / 5) + 11;
|
return (((cc2420_read_reg(CC2420_REG_FSCTRL) & CC2420_FREQ_MASK) - 357) / 5) + 11;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t cc2420_set_address(uint16_t addr)
|
uint16_t cc2420_set_address(uint16_t addr)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user