40 #ifndef BUTTON_SENSOR_H_
41 #define BUTTON_SENSOR_H_
43 #include "contiki-conf.h"
44 #include "lib/sensors.h"
46 #define BUTTON_SENSOR "Button"
57 #if MODELS_CONF_CC2531_USB_STICK
58 #define BUTTON1_PORT 1
60 #define BUTTON2_PORT 1
63 #define BUTTON1_PORT 0
67 #ifdef BUTTON_SENSOR_CONF_ON
68 #define BUTTON_SENSOR_ON BUTTON_SENSOR_CONF_ON
71 #define button_sensor button_1_sensor
72 extern const struct sensors_sensor button_1_sensor;
73 extern const struct sensors_sensor button_2_sensor;
76 #if MODELS_CONF_CC2531_USB_STICK
79 void port_1_isr(
void) __interrupt(P1INT_VECTOR);
80 #define BUTTON_SENSOR_ACTIVATE() do { \
81 button_1_sensor.configure(SENSORS_ACTIVE, 1); \
82 button_2_sensor.configure(SENSORS_ACTIVE, 1); \
88 void port_0_isr(
void) __interrupt(P0INT_VECTOR);
89 #define BUTTON_SENSOR_ACTIVATE() button_sensor.configure(SENSORS_ACTIVE, 1)
93 #define BUTTON_SENSOR_ACTIVATE()
97 #define BUTTON_READ(b) PORT_READ(BUTTON##b##_PORT, BUTTON##b##_PIN)
98 #define BUTTON_FUNC_GPIO(b) PORT_FUNC_GPIO(BUTTON##b##_PORT, BUTTON##b##_PIN)
99 #define BUTTON_DIR_INPUT(b) PORT_DIR_INPUT(BUTTON##b##_PORT, BUTTON##b##_PIN)
100 #define BUTTON_IRQ_ENABLED(b) PORT_IRQ_ENABLED(BUTTON##b##_PORT, BUTTON##b##_PIN)
101 #define BUTTON_IRQ_CHECK(b) PORT_IRQ_CHECK(BUTTON##b##_PORT, BUTTON##b##_PIN)
102 #define BUTTON_IRQ_ENABLE(b) PORT_IRQ_ENABLE(BUTTON##b##_PORT, BUTTON##b##_PIN)
103 #define BUTTON_IRQ_DISABLE(b) PORT_IRQ_DISABLE(BUTTON##b##_PORT, BUTTON##b##_PIN)
104 #define BUTTON_IRQ_FLAG_OFF(b) PORT_IRQ_FLAG_OFF(BUTTON##b##_PORT, BUTTON##b##_PIN)
105 #define BUTTON_IRQ_ON_PRESS(b) PORT_IRQ_EDGE_RISE(BUTTON##b##_PORT, BUTTON##b##_PIN)
106 #define BUTTON_IRQ_ON_RELEASE(b) PORT_IRQ_EDGE_FALL(BUTTON##b##_PORT, BUTTON##b##_PIN)