summaryrefslogtreecommitdiff
path: root/src/systemtask/SystemTask.cpp
diff options
context:
space:
mode:
authorChristoph Honal <christoph.honal@web.de>2022-05-10 21:10:28 +0200
committerRiku Isokoski <riksu9000@gmail.com>2022-06-05 09:53:22 +0300
commit977936e8e256eacb0c1b66e9601143e3f4dec280 (patch)
tree0463d9c563f0afd5247d684d7ac85322c4f8abf5 /src/systemtask/SystemTask.cpp
parent03a2059e875bc03919520c4c4febdf80e23f8164 (diff)
System: Refactor pin and interrupt setup
This should ensure better readability of the pin setup procedure, as well as allow the configuration of the hardware button enable pin and the accelerometer interrupt pin via the pin mapping header.
Diffstat (limited to 'src/systemtask/SystemTask.cpp')
-rw-r--r--src/systemtask/SystemTask.cpp28
1 files changed, 9 insertions, 19 deletions
diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp
index c7e0fc88..200cf3b0 100644
--- a/src/systemtask/SystemTask.cpp
+++ b/src/systemtask/SystemTask.cpp
@@ -172,39 +172,29 @@ void SystemTask::Work() {
buttonHandler.Init(this);
- // Button
- nrf_gpio_cfg_output(15);
- nrf_gpio_pin_set(15);
-
+ // Setup Interrupts
nrfx_gpiote_in_config_t pinConfig;
pinConfig.skip_gpio_setup = false;
pinConfig.hi_accuracy = false;
pinConfig.is_watcher = false;
- pinConfig.sense = static_cast<nrf_gpiote_polarity_t>(NRF_GPIOTE_POLARITY_TOGGLE);
- pinConfig.pull = static_cast<nrf_gpio_pin_pull_t>(GPIO_PIN_CNF_PULL_Pulldown);
+ // Button
+ nrf_gpio_cfg_output(PinMap::ButtonEnable);
+ nrf_gpio_pin_set(PinMap::ButtonEnable);
+ pinConfig.sense = NRF_GPIOTE_POLARITY_TOGGLE;
+ pinConfig.pull = NRF_GPIO_PIN_PULLDOWN;
nrfx_gpiote_in_init(PinMap::Button, &pinConfig, nrfx_gpiote_evt_handler);
nrfx_gpiote_in_event_enable(PinMap::Button, true);
// Touchscreen
- nrf_gpio_cfg_sense_input(PinMap::Cst816sIrq,
- static_cast<nrf_gpio_pin_pull_t>(GPIO_PIN_CNF_PULL_Pullup),
- static_cast<nrf_gpio_pin_sense_t>(GPIO_PIN_CNF_SENSE_Low));
-
- pinConfig.skip_gpio_setup = true;
- pinConfig.hi_accuracy = false;
- pinConfig.is_watcher = false;
- pinConfig.sense = static_cast<nrf_gpiote_polarity_t>(NRF_GPIOTE_POLARITY_HITOLO);
- pinConfig.pull = static_cast<nrf_gpio_pin_pull_t>(GPIO_PIN_CNF_PULL_Pullup);
-
+ pinConfig.sense = NRF_GPIOTE_POLARITY_HITOLO;
+ pinConfig.pull = NRF_GPIO_PIN_PULLUP;
nrfx_gpiote_in_init(PinMap::Cst816sIrq, &pinConfig, nrfx_gpiote_evt_handler);
+ nrfx_gpiote_in_event_enable(PinMap::Cst816sIrq, true);
// Power present
pinConfig.sense = NRF_GPIOTE_POLARITY_TOGGLE;
pinConfig.pull = NRF_GPIO_PIN_NOPULL;
- pinConfig.is_watcher = false;
- pinConfig.hi_accuracy = false;
- pinConfig.skip_gpio_setup = false;
nrfx_gpiote_in_init(PinMap::PowerPresent, &pinConfig, nrfx_gpiote_evt_handler);
nrfx_gpiote_in_event_enable(PinMap::PowerPresent, true);