37 #include "dev/models.h"
38 #include "lib/sensors.h"
39 #include "dev/hwconf.h"
45 static CC_AT_DATA
struct timer debouncetimer[2];
48 HWCONF_PIN(BUTTON_1, 1, 0)
49 HWCONF_PORT_1_IRQ(BUTTON_1, 0)
50 HWCONF_PIN(BUTTON_2, 0, 4)
51 HWCONF_PORT_0_IRQ(BUTTON_2, 4)
55 HWCONF_PIN(BUTTON_1, 0, 6)
56 HWCONF_PORT_0_IRQ(BUTTON_1, 6)
57 HWCONF_PIN(BUTTON_2, 0, 7)
58 HWCONF_PORT_0_IRQ(BUTTON_2, 7)
74 return BUTTON_1_IRQ_ENABLED();
80 configure_b1(
int type,
int value)
85 BUTTON_1_IRQ_EDGE_SELECTD();
87 BUTTON_1_MAKE_INPUT();
91 if(!BUTTON_1_IRQ_ENABLED()) {
93 BUTTON_1_IRQ_FLAG_OFF();
94 BUTTON_1_ENABLE_IRQ();
97 BUTTON_1_DISABLE_IRQ();
116 return BUTTON_2_IRQ_ENABLED();
122 configure_b2(
int type,
int value)
125 case SENSORS_HW_INIT:
129 BUTTON_2_MAKE_INPUT();
133 if(!BUTTON_2_IRQ_ENABLED()) {
135 BUTTON_2_IRQ_FLAG_OFF();
136 BUTTON_2_ENABLE_IRQ();
139 BUTTON_2_DISABLE_IRQ();
147 #if CC_CONF_OPTIMIZE_STACK_SIZE
151 port_0_ISR(
void) __interrupt (P0INT_VECTOR)
154 ENERGEST_ON(ENERGEST_TYPE_IRQ);
160 if(BUTTON_1_CHECK_IRQ()) {
163 sensors_changed(&button_1_sensor);
167 if(BUTTON_2_CHECK_IRQ()) {
170 sensors_changed(&button_2_sensor);
175 ENERGEST_OFF(ENERGEST_TYPE_IRQ);
182 port_1_ISR(
void) __interrupt (P1INT_VECTOR)
185 ENERGEST_ON(ENERGEST_TYPE_IRQ);
189 if(BUTTON_1_CHECK_IRQ()) {
192 sensors_changed(&button_1_sensor);
197 ENERGEST_OFF(ENERGEST_TYPE_IRQ);
203 SENSORS_SENSOR(button_1_sensor, BUTTON_1_SENSOR, value_b1, configure_b1, status_b1);
204 SENSORS_SENSOR(button_2_sensor, BUTTON_2_SENSOR, value_b2, configure_b2, status_b2);
void timer_set(struct timer *t, clock_time_t interval)
Set a timer.
Defines for the sensors on the various Sensinode models.
int timer_expired(struct timer *t)
Check if a timer has expired.
#define CLOCK_SECOND
A second, measured in system clock time.