diff --git a/core/dev/cc2420.c b/core/dev/cc2420.c index 82bb57f7b..f9c3311ea 100644 --- a/core/dev/cc2420.c +++ b/core/dev/cc2420.c @@ -28,7 +28,7 @@ * * This file is part of the Contiki operating system. * - * @(#)$Id: cc2420.c,v 1.3 2006/08/09 16:13:39 bg- Exp $ + * @(#)$Id: cc2420.c,v 1.4 2006/08/09 17:39:39 bg- Exp $ */ /* * This code is almost device independent and should be possible to @@ -108,50 +108,6 @@ cc2420_status(void) return status; } -#define PA_LEVEL 0x1F - -unsigned -cc2420_pa_level(u16_t p) -{ - u16_t reg; - - /* - * All PA settings can be used, the ones given in the datasheet - * correspond to 0, -1, -3, -5, -7, -10, -15, -25 dBm in the - * reference design. - */ - if (p > PA_LEVEL) - p = PA_LEVEL; - - reg = cc2420_getreg(CC2420_TXCTRL); - - p |= reg & ~PA_LEVEL; - - cc2420_setreg(CC2420_TXCTRL, p); - - return reg & PA_LEVEL; -} - -unsigned -cc2420_get_pa_level(void) -{ - u16_t reg; - - reg = cc2420_getreg(CC2420_TXCTRL); - - return reg & PA_LEVEL; -} - -int -cc2420_get_current_rssi(void) -{ - u16_t reg; - - reg = cc2420_getreg(CC2420_RSSI); - - return (signed char) (reg & 0xff); -} - #define AUTOACK (1 << 4) #define RXFIFO_PROTECTION (1 << 9) #define CORR_THR(n) (((n) & 0x1f) << 6) diff --git a/core/dev/cc2420.h b/core/dev/cc2420.h index 024355afe..fa9925aaf 100644 --- a/core/dev/cc2420.h +++ b/core/dev/cc2420.h @@ -28,7 +28,7 @@ * * This file is part of the Contiki operating system. * - * @(#)$Id: cc2420.h,v 1.2 2006/08/02 14:33:37 bg- Exp $ + * @(#)$Id: cc2420.h,v 1.3 2006/08/09 17:39:39 bg- Exp $ */ #ifndef CC2420_H @@ -117,9 +117,6 @@ void cc2420_set_chan_pan_addr(unsigned channel, unsigned pan, unsigned addr, const u8_t *ieee_addr); void cc2420_on(void); void cc2420_off(void); -unsigned cc2420_pa_level(u16_t); -unsigned cc2420_get_pa_level(void); -int cc2420_get_current_rssi(void); u8_t cc2420_send_ip(void); u8_t cc2420_send_uaodv(void); diff --git a/core/dev/cc2420_misc.h b/core/dev/cc2420_misc.h new file mode 100644 index 000000000..c4c732f46 --- /dev/null +++ b/core/dev/cc2420_misc.h @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2006, Swedish Institute of Computer Science + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)$Id: cc2420_misc.h,v 1.1 2006/08/09 17:39:39 bg- Exp $ + */ + +#ifndef CC2420_MISC_H +#define CC2420_MISC_H + +/* + * Miscellaneous routines that illustrates how some of the CC2420 + * registers may be accessed. + */ + +unsigned cc2420_pa_level(u16_t); +unsigned cc2420_get_pa_level(void); +int cc2420_get_current_rssi(void); + +#define PA_LEVEL 0x1F + +inline +unsigned +cc2420_pa_level(u16_t p) +{ + u16_t reg; + + /* + * All PA settings can be used, the ones given in the datasheet + * correspond to 0, -1, -3, -5, -7, -10, -15, -25 dBm in the + * reference design. + */ + if (p > PA_LEVEL) + p = PA_LEVEL; + + reg = cc2420_getreg(CC2420_TXCTRL); + + p |= reg & ~PA_LEVEL; + + cc2420_setreg(CC2420_TXCTRL, p); + + return reg & PA_LEVEL; +} + +inline +unsigned +cc2420_get_pa_level(void) +{ + u16_t reg; + + reg = cc2420_getreg(CC2420_TXCTRL); + + return reg & PA_LEVEL; +} + +inline +int +cc2420_get_current_rssi(void) +{ + u16_t reg; + + reg = cc2420_getreg(CC2420_RSSI); + + return (signed char) (reg & 0xff); +} + +#endif /* CC2420_MISC_H */