From d1b22d40fa655734399eb79c0bf2970a9fcf1d20 Mon Sep 17 00:00:00 2001 From: Niclas Finne Date: Thu, 22 Sep 2011 16:46:07 +0200 Subject: [PATCH] leds setup for WiSMote --- platform/wismote/contiki-wismote-main.c | 9 --- platform/wismote/leds-arch.c | 83 +++++++++++++++++++++++++ platform/wismote/platform-conf.h | 33 +++------- 3 files changed, 92 insertions(+), 33 deletions(-) create mode 100644 platform/wismote/leds-arch.c diff --git a/platform/wismote/contiki-wismote-main.c b/platform/wismote/contiki-wismote-main.c index e244b68ad..ab8cef083 100644 --- a/platform/wismote/contiki-wismote-main.c +++ b/platform/wismote/contiki-wismote-main.c @@ -397,12 +397,6 @@ main(int argc, char **argv) print_processes(autostart_processes); autostart_start(autostart_processes); - // LED Low Init - P2DIR |= BIT4;//TODO - P8DIR |= BIT6; - P2OUT |= BIT4; - P8OUT |= BIT6; - /* * This is the scheduler loop. */ @@ -454,9 +448,6 @@ main(int argc, char **argv) watchdog_start(); ENERGEST_OFF(ENERGEST_TYPE_LPM); ENERGEST_ON(ENERGEST_TYPE_CPU); - - /* P8OUT |= BIT6; */ - /* P2OUT |= BIT4; */ } } diff --git a/platform/wismote/leds-arch.c b/platform/wismote/leds-arch.c new file mode 100644 index 000000000..b168813b1 --- /dev/null +++ b/platform/wismote/leds-arch.c @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2011, 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. + * + * This file is part of the Contiki operating system. + * + */ + +/** + * \file + * Leds arch specific file for the WiSMote platform + * \author + * Niclas Finne + * Joakim Eriksson + */ + +#include "contiki.h" +#include "dev/leds.h" + +/*---------------------------------------------------------------------------*/ +void +leds_arch_init(void) +{ + P2DIR |= BIT4; + P2OUT |= BIT4; + P5OUT |= BIT2; + P5DIR |= BIT2; + P8DIR |= BIT6; + P8OUT |= BIT6; +} +/*---------------------------------------------------------------------------*/ +unsigned char +leds_arch_get(void) +{ + return ((P2OUT & BIT4) ? 0 : LEDS_GREEN) + | ((P5OUT & BIT2) ? 0 : LEDS_YELLOW) + | ((P8OUT & BIT6) ? 0 : LEDS_RED); +} +/*---------------------------------------------------------------------------*/ +void +leds_arch_set(unsigned char leds) +{ + if(leds & LEDS_GREEN) { + P2OUT &= ~BIT4; + } else { + P2OUT |= BIT4; + } + if(leds & LEDS_YELLOW) { + P5OUT &= ~BIT2; + } else { + P5OUT |= BIT2; + } + if(leds & LEDS_RED) { + P8OUT &= ~BIT6; + } else { + P8OUT |= BIT6; + } +} +/*---------------------------------------------------------------------------*/ diff --git a/platform/wismote/platform-conf.h b/platform/wismote/platform-conf.h index 7d6ff5dd2..91d154a94 100644 --- a/platform/wismote/platform-conf.h +++ b/platform/wismote/platform-conf.h @@ -68,21 +68,6 @@ typedef unsigned long off_t; /* the low-level radio driver */ #define NETSTACK_CONF_RADIO cc2520_driver -/* LED ports */ -#define LEDS_PxDIR P2DIR -#define LEDS_PxOUT P2OUT -#define LEDS_CONF_RED 0x10 -#define LEDS_CONF_GREEN 0 //0x20 -#define LEDS_CONF_YELLOW 0 //0x40 - -/* DCO speed resynchronization for more robust UART, etc. */ -#ifndef DCOSYNCH_CONF_ENABLED -#define DCOSYNCH_CONF_ENABLED 0 -#endif /* DCOSYNCH_CONF_ENABLED */ -#ifndef DCOSYNCH_CONF_PERIOD -#define DCOSYNCH_CONF_PERIOD 30 -#endif /* DCOSYNCH_CONF_PERIOD */ - #define ROM_ERASE_UNIT_SIZE 512 #define XMEM_ERASE_UNIT_SIZE (64*1024L) @@ -143,25 +128,25 @@ typedef unsigned long off_t; #define CC2520_CONF_SYMBOL_LOOP_COUNT 2604 /* 326us msp430X @ 16MHz */ -/* P1.0 - Input: FIFOP from CC2520 */ -#define CC2520_FIFOP_PORT(type) P1##type -#define CC2520_FIFOP_PIN 6 -/* P1.3 - Input: FIFO from CC2520 */ +/* P1.6 - Input: FIFOP from CC2520 */ +#define CC2520_FIFOP_PORT(type) P1##type +#define CC2520_FIFOP_PIN 6 +/* P1.5 - Input: FIFO from CC2520 */ #define CC2520_FIFO_PORT(type) P1##type #define CC2520_FIFO_PIN 5 -/* P1.4 - Input: CCA from CC2520 */ +/* P1.7 - Input: CCA from CC2520 */ #define CC2520_CCA_PORT(type) P1##type #define CC2520_CCA_PIN 7 -/* P4.1 - Input: SFD from CC2520 */ +/* P2.0 - Input: SFD from CC2520 */ #define CC2520_SFD_PORT(type) P2##type #define CC2520_SFD_PIN 0 -/* P4.2 - Output: SPI Chip Select (CS_N) */ +/* P3.0 - Output: SPI Chip Select (CS_N) */ #define CC2520_CSN_PORT(type) P3##type #define CC2520_CSN_PIN 0 -/* P4.5 - Output: VREG_EN to CC2520 */ +/* P4.3 - Output: VREG_EN to CC2520 */ #define CC2520_VREG_PORT(type) P4##type #define CC2520_VREG_PIN 3 -/* P4.6 - Output: RESET_N to CC2520 */ +/* P4.4 - Output: RESET_N to CC2520 */ #define CC2520_RESET_PORT(type) P4##type #define CC2520_RESET_PIN 4