add button handling
This commit is contained in:
parent
4ed74dad32
commit
fe74ccd8e3
8
include/board.h
Normal file
8
include/board.h
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#ifndef __BOARD_H__
|
||||||
|
#define __BOARD_H__
|
||||||
|
|
||||||
|
#ifdef BOARD_PCA10040
|
||||||
|
#include "platform/narf52/narf52_dk.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
@ -6,7 +6,8 @@
|
|||||||
|
|
||||||
#include "driver.h"
|
#include "driver.h"
|
||||||
|
|
||||||
struct narf52_gpio narf_led_1 = {
|
// LEDs
|
||||||
|
const struct narf52_gpio narf_led_1 = {
|
||||||
.pin_number = 17,
|
.pin_number = 17,
|
||||||
.dir = NARF_GPIO_DIR_OUT,
|
.dir = NARF_GPIO_DIR_OUT,
|
||||||
.input = NARF_GPIO_PIN_INPUT_DISCONNECT,
|
.input = NARF_GPIO_PIN_INPUT_DISCONNECT,
|
||||||
@ -15,13 +16,13 @@ struct narf52_gpio narf_led_1 = {
|
|||||||
.sense = NARF_GPIO_PIN_NOSENSE,
|
.sense = NARF_GPIO_PIN_NOSENSE,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct driver led_1 = {
|
const struct driver led_1 = {
|
||||||
.name = "LED_1",
|
.name = "LED_1",
|
||||||
.fp = &gpio_fp,
|
.fp = &gpio_fp,
|
||||||
.dev = (void *)&narf_led_1,
|
.dev = (void *)&narf_led_1,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct narf52_gpio narf_led_2 = {
|
const struct narf52_gpio narf_led_2 = {
|
||||||
.pin_number = 18,
|
.pin_number = 18,
|
||||||
.dir = NARF_GPIO_DIR_OUT,
|
.dir = NARF_GPIO_DIR_OUT,
|
||||||
.input = NARF_GPIO_PIN_INPUT_DISCONNECT,
|
.input = NARF_GPIO_PIN_INPUT_DISCONNECT,
|
||||||
@ -30,13 +31,13 @@ struct narf52_gpio narf_led_2 = {
|
|||||||
.sense = NARF_GPIO_PIN_NOSENSE,
|
.sense = NARF_GPIO_PIN_NOSENSE,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct driver led_2 = {
|
const struct driver led_2 = {
|
||||||
.name = "LED_2",
|
.name = "LED_2",
|
||||||
.fp = &gpio_fp,
|
.fp = &gpio_fp,
|
||||||
.dev = (void *)&narf_led_2,
|
.dev = (void *)&narf_led_2,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct narf52_gpio narf_led_3 = {
|
const struct narf52_gpio narf_led_3 = {
|
||||||
.pin_number = 19,
|
.pin_number = 19,
|
||||||
.dir = NARF_GPIO_DIR_OUT,
|
.dir = NARF_GPIO_DIR_OUT,
|
||||||
.input = NARF_GPIO_PIN_INPUT_DISCONNECT,
|
.input = NARF_GPIO_PIN_INPUT_DISCONNECT,
|
||||||
@ -45,13 +46,13 @@ struct narf52_gpio narf_led_3 = {
|
|||||||
.sense = NARF_GPIO_PIN_NOSENSE,
|
.sense = NARF_GPIO_PIN_NOSENSE,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct driver led_3 = {
|
const struct driver led_3 = {
|
||||||
.name = "LED_3",
|
.name = "LED_3",
|
||||||
.fp = &gpio_fp,
|
.fp = &gpio_fp,
|
||||||
.dev = (void *)&narf_led_3,
|
.dev = (void *)&narf_led_3,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct narf52_gpio narf_led_4 = {
|
const struct narf52_gpio narf_led_4 = {
|
||||||
.pin_number = 20,
|
.pin_number = 20,
|
||||||
.dir = NARF_GPIO_DIR_OUT,
|
.dir = NARF_GPIO_DIR_OUT,
|
||||||
.input = NARF_GPIO_PIN_INPUT_DISCONNECT,
|
.input = NARF_GPIO_PIN_INPUT_DISCONNECT,
|
||||||
@ -60,10 +61,71 @@ struct narf52_gpio narf_led_4 = {
|
|||||||
.sense = NARF_GPIO_PIN_NOSENSE,
|
.sense = NARF_GPIO_PIN_NOSENSE,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct driver led_4 = {
|
const struct driver led_4 = {
|
||||||
.name = "LED_4",
|
.name = "LED_4",
|
||||||
.fp = &gpio_fp,
|
.fp = &gpio_fp,
|
||||||
.dev = (void *)&narf_led_4,
|
.dev = (void *)&narf_led_4,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// BUTTONs
|
||||||
|
const struct narf52_gpio narf_button_1 = {
|
||||||
|
.pin_number = 13,
|
||||||
|
.dir = NARF_GPIO_DIR_IN,
|
||||||
|
.input = NARF_GPIO_PIN_INPUT_CONNECT,
|
||||||
|
.pull = NARF_GPIO_PIN_PULLUP,
|
||||||
|
.drive = NARF_GPIO_PIN_S0S1,
|
||||||
|
.sense = NARF_GPIO_PIN_NOSENSE,
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct driver button_1 = {
|
||||||
|
.name = "BUTTON_1",
|
||||||
|
.fp = &gpio_fp,
|
||||||
|
.dev = (void *)&narf_button_1,
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct narf52_gpio narf_button_2 = {
|
||||||
|
.pin_number = 14,
|
||||||
|
.dir = NARF_GPIO_DIR_IN,
|
||||||
|
.input = NARF_GPIO_PIN_INPUT_CONNECT,
|
||||||
|
.pull = NARF_GPIO_PIN_PULLUP,
|
||||||
|
.drive = NARF_GPIO_PIN_S0S1,
|
||||||
|
.sense = NARF_GPIO_PIN_NOSENSE,
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct driver button_2 = {
|
||||||
|
.name = "BUTTON_2",
|
||||||
|
.fp = &gpio_fp,
|
||||||
|
.dev = (void *)&narf_button_2,
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct narf52_gpio narf_button_3 = {
|
||||||
|
.pin_number = 15,
|
||||||
|
.dir = NARF_GPIO_DIR_IN,
|
||||||
|
.input = NARF_GPIO_PIN_INPUT_CONNECT,
|
||||||
|
.pull = NARF_GPIO_PIN_PULLUP,
|
||||||
|
.drive = NARF_GPIO_PIN_S0S1,
|
||||||
|
.sense = NARF_GPIO_PIN_NOSENSE,
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct driver button_3 = {
|
||||||
|
.name = "BUTTON_3",
|
||||||
|
.fp = &gpio_fp,
|
||||||
|
.dev = (void *)&narf_button_3,
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct narf52_gpio narf_button_4 = {
|
||||||
|
.pin_number = 16,
|
||||||
|
.dir = NARF_GPIO_DIR_IN,
|
||||||
|
.input = NARF_GPIO_PIN_INPUT_CONNECT,
|
||||||
|
.pull = NARF_GPIO_PIN_PULLUP,
|
||||||
|
.drive = NARF_GPIO_PIN_S0S1,
|
||||||
|
.sense = NARF_GPIO_PIN_NOSENSE,
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct driver button_4 = {
|
||||||
|
.name = "BUTTON_4",
|
||||||
|
.fp = &gpio_fp,
|
||||||
|
.dev = (void *)&narf_button_4,
|
||||||
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
30
src/main.c
30
src/main.c
@ -1,10 +1,7 @@
|
|||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include "nrf_delay.h"
|
|
||||||
#include "boards.h"
|
|
||||||
|
|
||||||
#include "platform/narf52/narf52_dk.h"
|
|
||||||
|
|
||||||
|
#include "board.h"
|
||||||
#include "driver.h"
|
#include "driver.h"
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
@ -15,14 +12,23 @@ int main(void)
|
|||||||
drv_open(&led_3);
|
drv_open(&led_3);
|
||||||
drv_open(&led_4);
|
drv_open(&led_4);
|
||||||
|
|
||||||
|
drv_open(&button_1);
|
||||||
|
drv_open(&button_2);
|
||||||
|
drv_open(&button_3);
|
||||||
|
drv_open(&button_4);
|
||||||
|
|
||||||
while(true) {
|
while(true) {
|
||||||
for(uint32_t i = 0; i < UINT32_MAX; i++) {
|
char x;
|
||||||
char x = 0x30 | (char)(1 & i);
|
drv_read(&button_1, &x, 1);
|
||||||
drv_write(&led_1, &x, 1);
|
drv_write(&led_1, &x, 1);
|
||||||
drv_write(&led_2, &x, 1);
|
|
||||||
drv_write(&led_3, &x, 1);
|
drv_read(&button_2, &x, 1);
|
||||||
drv_write(&led_4, &x, 1);
|
drv_write(&led_2, &x, 1);
|
||||||
nrf_delay_ms(500);
|
|
||||||
}
|
drv_read(&button_3, &x, 1);
|
||||||
|
drv_write(&led_3, &x, 1);
|
||||||
|
|
||||||
|
drv_read(&button_4, &x, 1);
|
||||||
|
drv_write(&led_4, &x, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user