Use the new button HAL: CC2538DK
This commit is contained in:
parent
7bf6679806
commit
974a7549e9
@ -9,7 +9,7 @@ CONTIKI_TARGET_DIRS = . dev
|
|||||||
CONTIKI_TARGET_SOURCEFILES += leds-arch.c
|
CONTIKI_TARGET_SOURCEFILES += leds-arch.c
|
||||||
CONTIKI_TARGET_SOURCEFILES += platform.c
|
CONTIKI_TARGET_SOURCEFILES += platform.c
|
||||||
CONTIKI_TARGET_SOURCEFILES += sensors.c smartrf-sensors.c
|
CONTIKI_TARGET_SOURCEFILES += sensors.c smartrf-sensors.c
|
||||||
CONTIKI_TARGET_SOURCEFILES += button-sensor.c als-sensor.c
|
CONTIKI_TARGET_SOURCEFILES += board-buttons.c als-sensor.c
|
||||||
|
|
||||||
CONTIKI_SOURCEFILES += $(CONTIKI_TARGET_SOURCEFILES)
|
CONTIKI_SOURCEFILES += $(CONTIKI_TARGET_SOURCEFILES)
|
||||||
|
|
||||||
|
69
arch/platform/cc2538dk/dev/board-buttons.c
Normal file
69
arch/platform/cc2538dk/dev/board-buttons.c
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2017, George Oikonomou - http://www.spd.gr
|
||||||
|
* 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 copyright holder 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 COPYRIGHT HOLDERS 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
|
||||||
|
* COPYRIGHT HOLDER 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.
|
||||||
|
*/
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
/**
|
||||||
|
* \addtogroup cc2538-smartrf
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \defgroup cc2538-smartrf-buttons SmartRF06EB Buttons
|
||||||
|
*
|
||||||
|
* Generic module controlling buttons on the SmartRF06EB
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* \file
|
||||||
|
* Defines SmartRF06EB buttons for use with the button HAL
|
||||||
|
*/
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
#include "contiki.h"
|
||||||
|
#include "dev/button-hal.h"
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
BUTTON_HAL_BUTTON(key_left, "Key Left", \
|
||||||
|
GPIO_PORT_PIN_TO_GPIO_HAL_PIN(BUTTON_LEFT_PORT, BUTTON_LEFT_PIN), \
|
||||||
|
GPIO_HAL_PIN_CFG_PULL_UP, BUTTON_HAL_ID_BUTTON_ZERO, true);
|
||||||
|
BUTTON_HAL_BUTTON(key_right, "Key Right", \
|
||||||
|
GPIO_PORT_PIN_TO_GPIO_HAL_PIN(BUTTON_RIGHT_PORT, BUTTON_RIGHT_PIN), \
|
||||||
|
GPIO_HAL_PIN_CFG_PULL_UP, BUTTON_HAL_ID_BUTTON_ONE, true);
|
||||||
|
BUTTON_HAL_BUTTON(key_up, "Key Up", \
|
||||||
|
GPIO_PORT_PIN_TO_GPIO_HAL_PIN(BUTTON_UP_PORT, BUTTON_UP_PIN), \
|
||||||
|
GPIO_HAL_PIN_CFG_PULL_UP, BUTTON_HAL_ID_BUTTON_TWO, true);
|
||||||
|
BUTTON_HAL_BUTTON(key_down, "Key Down", \
|
||||||
|
GPIO_PORT_PIN_TO_GPIO_HAL_PIN(BUTTON_DOWN_PORT, BUTTON_DOWN_PIN), \
|
||||||
|
GPIO_HAL_PIN_CFG_PULL_UP, BUTTON_HAL_ID_BUTTON_THREE, true);
|
||||||
|
BUTTON_HAL_BUTTON(key_select, "Key Select", \
|
||||||
|
GPIO_PORT_PIN_TO_GPIO_HAL_PIN(BUTTON_SELECT_PORT, BUTTON_SELECT_PIN), \
|
||||||
|
GPIO_HAL_PIN_CFG_PULL_UP, BUTTON_HAL_ID_BUTTON_FOUR, true);
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
BUTTON_HAL_BUTTONS(&key_left, &key_right, &key_up, &key_down, &key_select);
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
* @}
|
||||||
|
*/
|
@ -1,265 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2012, Texas Instruments Incorporated - http://www.ti.com/
|
|
||||||
* 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 copyright holder 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 COPYRIGHT HOLDERS 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
|
|
||||||
* COPYRIGHT HOLDER 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.
|
|
||||||
*/
|
|
||||||
/**
|
|
||||||
* \addtogroup cc2538dk-button-sensor
|
|
||||||
* @{
|
|
||||||
*
|
|
||||||
* \file
|
|
||||||
* Driver for the SmartRF06EB buttons
|
|
||||||
*/
|
|
||||||
#include "contiki.h"
|
|
||||||
#include "dev/nvic.h"
|
|
||||||
#include "dev/ioc.h"
|
|
||||||
#include "dev/gpio.h"
|
|
||||||
#include "dev/button-sensor.h"
|
|
||||||
#include "sys/timer.h"
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#define BUTTON_SELECT_PORT_BASE GPIO_PORT_TO_BASE(BUTTON_SELECT_PORT)
|
|
||||||
#define BUTTON_SELECT_PIN_MASK GPIO_PIN_MASK(BUTTON_SELECT_PIN)
|
|
||||||
|
|
||||||
#define BUTTON_LEFT_PORT_BASE GPIO_PORT_TO_BASE(BUTTON_LEFT_PORT)
|
|
||||||
#define BUTTON_LEFT_PIN_MASK GPIO_PIN_MASK(BUTTON_LEFT_PIN)
|
|
||||||
|
|
||||||
#define BUTTON_RIGHT_PORT_BASE GPIO_PORT_TO_BASE(BUTTON_RIGHT_PORT)
|
|
||||||
#define BUTTON_RIGHT_PIN_MASK GPIO_PIN_MASK(BUTTON_RIGHT_PIN)
|
|
||||||
|
|
||||||
#define BUTTON_UP_PORT_BASE GPIO_PORT_TO_BASE(BUTTON_UP_PORT)
|
|
||||||
#define BUTTON_UP_PIN_MASK GPIO_PIN_MASK(BUTTON_UP_PIN)
|
|
||||||
|
|
||||||
#define BUTTON_DOWN_PORT_BASE GPIO_PORT_TO_BASE(BUTTON_DOWN_PORT)
|
|
||||||
#define BUTTON_DOWN_PIN_MASK GPIO_PIN_MASK(BUTTON_DOWN_PIN)
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
static struct timer debouncetimer;
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
/**
|
|
||||||
* \brief Common initialiser for all buttons
|
|
||||||
* \param port_base GPIO port's register offset
|
|
||||||
* \param pin_mask Pin mask corresponding to the button's pin
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
config(uint32_t port_base, uint32_t pin_mask)
|
|
||||||
{
|
|
||||||
/* Software controlled */
|
|
||||||
GPIO_SOFTWARE_CONTROL(port_base, pin_mask);
|
|
||||||
|
|
||||||
/* Set pin to input */
|
|
||||||
GPIO_SET_INPUT(port_base, pin_mask);
|
|
||||||
|
|
||||||
/* Enable edge detection */
|
|
||||||
GPIO_DETECT_EDGE(port_base, pin_mask);
|
|
||||||
|
|
||||||
/* Single edge */
|
|
||||||
GPIO_TRIGGER_SINGLE_EDGE(port_base, pin_mask);
|
|
||||||
|
|
||||||
/* Trigger interrupt on Falling edge */
|
|
||||||
GPIO_DETECT_RISING(port_base, pin_mask);
|
|
||||||
|
|
||||||
GPIO_ENABLE_INTERRUPT(port_base, pin_mask);
|
|
||||||
}
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
static void
|
|
||||||
button_press_handler(gpio_hal_pin_mask_t pin_mask)
|
|
||||||
{
|
|
||||||
if(!timer_expired(&debouncetimer)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
timer_set(&debouncetimer, CLOCK_SECOND / 8);
|
|
||||||
|
|
||||||
if(pin_mask &
|
|
||||||
(gpio_hal_pin_to_mask(BUTTON_SELECT_PIN) << (BUTTON_SELECT_PORT << 3))) {
|
|
||||||
sensors_changed(&button_select_sensor);
|
|
||||||
} else if(pin_mask &
|
|
||||||
(gpio_hal_pin_to_mask(BUTTON_LEFT_PIN) << (BUTTON_LEFT_PORT << 3))) {
|
|
||||||
sensors_changed(&button_left_sensor);
|
|
||||||
} else if(pin_mask &
|
|
||||||
(gpio_hal_pin_to_mask(BUTTON_RIGHT_PIN) << (BUTTON_RIGHT_PORT << 3))) {
|
|
||||||
sensors_changed(&button_right_sensor);
|
|
||||||
} else if(pin_mask &
|
|
||||||
(gpio_hal_pin_to_mask(BUTTON_UP_PIN) << (BUTTON_UP_PORT << 3))) {
|
|
||||||
sensors_changed(&button_up_sensor);
|
|
||||||
} else if(pin_mask &
|
|
||||||
(gpio_hal_pin_to_mask(BUTTON_DOWN_PIN) << (BUTTON_DOWN_PORT << 3))) {
|
|
||||||
sensors_changed(&button_down_sensor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
static gpio_hal_event_handler_t press_handler = {
|
|
||||||
.next = NULL,
|
|
||||||
.handler = button_press_handler,
|
|
||||||
.pin_mask = 0,
|
|
||||||
};
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
static void
|
|
||||||
register_btn_callback(uint8_t port_num, uint8_t pin)
|
|
||||||
{
|
|
||||||
press_handler.pin_mask |=
|
|
||||||
gpio_hal_pin_to_mask(pin) << (port_num << 3);
|
|
||||||
|
|
||||||
gpio_hal_register_handler(&press_handler);
|
|
||||||
}
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
/**
|
|
||||||
* \brief Init function for the select button.
|
|
||||||
*
|
|
||||||
* Parameters are ignored. They have been included because the prototype is
|
|
||||||
* dictated by the core sensor api. The return value is also not required by
|
|
||||||
* the API but otherwise ignored.
|
|
||||||
*
|
|
||||||
* \param type ignored
|
|
||||||
* \param value ignored
|
|
||||||
* \return ignored
|
|
||||||
*/
|
|
||||||
static int
|
|
||||||
config_select(int type, int value)
|
|
||||||
{
|
|
||||||
config(BUTTON_SELECT_PORT_BASE, BUTTON_SELECT_PIN_MASK);
|
|
||||||
|
|
||||||
ioc_set_over(BUTTON_SELECT_PORT, BUTTON_SELECT_PIN, IOC_OVERRIDE_PUE);
|
|
||||||
|
|
||||||
NVIC_EnableIRQ(BUTTON_SELECT_VECTOR);
|
|
||||||
|
|
||||||
register_btn_callback(BUTTON_SELECT_PORT, BUTTON_SELECT_PIN);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
/**
|
|
||||||
* \brief Init function for the left button.
|
|
||||||
*
|
|
||||||
* Parameters are ignored. They have been included because the prototype is
|
|
||||||
* dictated by the core sensor api. The return value is also not required by
|
|
||||||
* the API but otherwise ignored.
|
|
||||||
*
|
|
||||||
* \param type ignored
|
|
||||||
* \param value ignored
|
|
||||||
* \return ignored
|
|
||||||
*/
|
|
||||||
static int
|
|
||||||
config_left(int type, int value)
|
|
||||||
{
|
|
||||||
config(BUTTON_LEFT_PORT_BASE, BUTTON_LEFT_PIN_MASK);
|
|
||||||
|
|
||||||
ioc_set_over(BUTTON_LEFT_PORT, BUTTON_LEFT_PIN, IOC_OVERRIDE_PUE);
|
|
||||||
|
|
||||||
NVIC_EnableIRQ(BUTTON_LEFT_VECTOR);
|
|
||||||
|
|
||||||
register_btn_callback(BUTTON_LEFT_PORT, BUTTON_LEFT_PIN);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
/**
|
|
||||||
* \brief Init function for the right button.
|
|
||||||
*
|
|
||||||
* Parameters are ignored. They have been included because the prototype is
|
|
||||||
* dictated by the core sensor api. The return value is also not required by
|
|
||||||
* the API but otherwise ignored.
|
|
||||||
*
|
|
||||||
* \param type ignored
|
|
||||||
* \param value ignored
|
|
||||||
* \return ignored
|
|
||||||
*/
|
|
||||||
static int
|
|
||||||
config_right(int type, int value)
|
|
||||||
{
|
|
||||||
config(BUTTON_RIGHT_PORT_BASE, BUTTON_RIGHT_PIN_MASK);
|
|
||||||
|
|
||||||
ioc_set_over(BUTTON_RIGHT_PORT, BUTTON_RIGHT_PIN, IOC_OVERRIDE_PUE);
|
|
||||||
|
|
||||||
NVIC_EnableIRQ(BUTTON_RIGHT_VECTOR);
|
|
||||||
|
|
||||||
register_btn_callback(BUTTON_RIGHT_PORT, BUTTON_RIGHT_PIN);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
/**
|
|
||||||
* \brief Init function for the up button.
|
|
||||||
*
|
|
||||||
* Parameters are ignored. They have been included because the prototype is
|
|
||||||
* dictated by the core sensor api. The return value is also not required by
|
|
||||||
* the API but otherwise ignored.
|
|
||||||
*
|
|
||||||
* \param type ignored
|
|
||||||
* \param value ignored
|
|
||||||
* \return ignored
|
|
||||||
*/
|
|
||||||
static int
|
|
||||||
config_up(int type, int value)
|
|
||||||
{
|
|
||||||
config(BUTTON_UP_PORT_BASE, BUTTON_UP_PIN_MASK);
|
|
||||||
|
|
||||||
ioc_set_over(BUTTON_UP_PORT, BUTTON_UP_PIN, IOC_OVERRIDE_PUE);
|
|
||||||
|
|
||||||
NVIC_EnableIRQ(BUTTON_UP_VECTOR);
|
|
||||||
|
|
||||||
register_btn_callback(BUTTON_UP_PORT, BUTTON_UP_PIN);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
/**
|
|
||||||
* \brief Init function for the down button.
|
|
||||||
*
|
|
||||||
* Parameters are ignored. They have been included because the prototype is
|
|
||||||
* dictated by the core sensor api. The return value is also not required by
|
|
||||||
* the API but otherwise ignored.
|
|
||||||
*
|
|
||||||
* \param type ignored
|
|
||||||
* \param value ignored
|
|
||||||
* \return ignored
|
|
||||||
*/
|
|
||||||
static int
|
|
||||||
config_down(int type, int value)
|
|
||||||
{
|
|
||||||
config(BUTTON_DOWN_PORT_BASE, BUTTON_DOWN_PIN_MASK);
|
|
||||||
|
|
||||||
ioc_set_over(BUTTON_DOWN_PORT, BUTTON_DOWN_PIN, IOC_OVERRIDE_PUE);
|
|
||||||
|
|
||||||
NVIC_EnableIRQ(BUTTON_DOWN_VECTOR);
|
|
||||||
|
|
||||||
register_btn_callback(BUTTON_DOWN_PORT, BUTTON_DOWN_PIN);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
void
|
|
||||||
button_sensor_init()
|
|
||||||
{
|
|
||||||
timer_set(&debouncetimer, 0);
|
|
||||||
}
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
SENSORS_SENSOR(button_select_sensor, BUTTON_SENSOR, NULL, config_select, NULL);
|
|
||||||
SENSORS_SENSOR(button_left_sensor, BUTTON_SENSOR, NULL, config_left, NULL);
|
|
||||||
SENSORS_SENSOR(button_right_sensor, BUTTON_SENSOR, NULL, config_right, NULL);
|
|
||||||
SENSORS_SENSOR(button_up_sensor, BUTTON_SENSOR, NULL, config_up, NULL);
|
|
||||||
SENSORS_SENSOR(button_down_sensor, BUTTON_SENSOR, NULL, config_down, NULL);
|
|
||||||
|
|
||||||
/** @} */
|
|
@ -1,66 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2012, Texas Instruments Incorporated - http://www.ti.com/
|
|
||||||
* 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 copyright holder 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 COPYRIGHT HOLDERS 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
|
|
||||||
* COPYRIGHT HOLDER 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.
|
|
||||||
*/
|
|
||||||
/**
|
|
||||||
* \addtogroup cc2538-smartrf-sensors
|
|
||||||
* @{
|
|
||||||
*
|
|
||||||
* \defgroup cc2538dk-button-sensor cc2538dk Button Driver
|
|
||||||
*
|
|
||||||
* Driver for the SmartRF06EB buttons
|
|
||||||
* @{
|
|
||||||
*
|
|
||||||
* \file
|
|
||||||
* Header file for the cc2538dk Button Driver
|
|
||||||
*/
|
|
||||||
#ifndef BUTTON_SENSOR_H_
|
|
||||||
#define BUTTON_SENSOR_H_
|
|
||||||
|
|
||||||
#include "lib/sensors.h"
|
|
||||||
#include "dev/gpio.h"
|
|
||||||
|
|
||||||
#define BUTTON_SENSOR "Button"
|
|
||||||
|
|
||||||
#define button_sensor button_select_sensor
|
|
||||||
extern const struct sensors_sensor button_select_sensor;
|
|
||||||
extern const struct sensors_sensor button_left_sensor;
|
|
||||||
extern const struct sensors_sensor button_right_sensor;
|
|
||||||
extern const struct sensors_sensor button_up_sensor;
|
|
||||||
extern const struct sensors_sensor button_down_sensor;
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
#endif /* BUTTON_SENSOR_H_ */
|
|
||||||
|
|
||||||
/** \brief Common initialiser for all SmartRF Buttons */
|
|
||||||
void button_sensor_init();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @}
|
|
||||||
* @}
|
|
||||||
*/
|
|
@ -41,16 +41,13 @@
|
|||||||
* Implementation of a generic module controlling SmartRF06EB sensors
|
* Implementation of a generic module controlling SmartRF06EB sensors
|
||||||
*/
|
*/
|
||||||
#include "contiki.h"
|
#include "contiki.h"
|
||||||
#include "dev/button-sensor.h"
|
|
||||||
#include "dev/als-sensor.h"
|
#include "dev/als-sensor.h"
|
||||||
#include "dev/cc2538-sensors.h"
|
#include "dev/cc2538-sensors.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
/** \brief Exports a global symbol to be used by the sensor API */
|
/** \brief Exports a global symbol to be used by the sensor API */
|
||||||
SENSORS(&button_select_sensor, &button_left_sensor, &button_right_sensor,
|
SENSORS(&als_sensor, &cc2538_temp_sensor, &vdd3_sensor);
|
||||||
&button_up_sensor, &button_down_sensor, &als_sensor,
|
|
||||||
&cc2538_temp_sensor, &vdd3_sensor);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
|
@ -46,14 +46,15 @@
|
|||||||
#include "dev/adc.h"
|
#include "dev/adc.h"
|
||||||
#include "dev/leds.h"
|
#include "dev/leds.h"
|
||||||
#include "dev/uart.h"
|
#include "dev/uart.h"
|
||||||
#include "dev/button-sensor.h"
|
|
||||||
#include "dev/serial-line.h"
|
#include "dev/serial-line.h"
|
||||||
#include "dev/slip.h"
|
#include "dev/slip.h"
|
||||||
#include "dev/cc2538-rf.h"
|
#include "dev/cc2538-rf.h"
|
||||||
#include "dev/udma.h"
|
#include "dev/udma.h"
|
||||||
#include "dev/crypto.h"
|
#include "dev/crypto.h"
|
||||||
|
#include "dev/button-hal.h"
|
||||||
#include "usb/usb-serial.h"
|
#include "usb/usb-serial.h"
|
||||||
#include "lib/random.h"
|
#include "lib/random.h"
|
||||||
|
#include "lib/sensors.h"
|
||||||
#include "net/netstack.h"
|
#include "net/netstack.h"
|
||||||
#include "net/mac/framer/frame802154.h"
|
#include "net/mac/framer/frame802154.h"
|
||||||
#include "net/linkaddr.h"
|
#include "net/linkaddr.h"
|
||||||
@ -121,8 +122,6 @@ platform_init_stage_one(void)
|
|||||||
void
|
void
|
||||||
platform_init_stage_two()
|
platform_init_stage_two()
|
||||||
{
|
{
|
||||||
button_sensor_init();
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Character I/O Initialisation.
|
* Character I/O Initialisation.
|
||||||
* When the UART receives a character it will call serial_line_input_byte to
|
* When the UART receives a character it will call serial_line_input_byte to
|
||||||
@ -159,6 +158,8 @@ platform_init_stage_two()
|
|||||||
/* Populate linkaddr_node_addr */
|
/* Populate linkaddr_node_addr */
|
||||||
ieee_addr_cpy_to(linkaddr_node_addr.u8, LINKADDR_SIZE);
|
ieee_addr_cpy_to(linkaddr_node_addr.u8, LINKADDR_SIZE);
|
||||||
|
|
||||||
|
button_hal_init();
|
||||||
|
|
||||||
INTERRUPTS_ENABLE();
|
INTERRUPTS_ENABLE();
|
||||||
|
|
||||||
fade(LEDS_GREEN);
|
fade(LEDS_GREEN);
|
||||||
|
Loading…
Reference in New Issue
Block a user