From 0fc55cdaf96a9c0481e59f69bdb22a4590fabb70 Mon Sep 17 00:00:00 2001 From: Robert Hartung Date: Thu, 1 Aug 2019 09:23:43 +0200 Subject: [PATCH] cpu/atmega1281: pin change interrupts --- cpu/atmega1281/Makefile.features | 4 +++- cpu/atmega1281/Makefile.include | 5 +++++ cpu/atmega1281/include/atmega_pcint.h | 16 ++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 cpu/atmega1281/include/atmega_pcint.h diff --git a/cpu/atmega1281/Makefile.features b/cpu/atmega1281/Makefile.features index 008260685b..39270920c7 100644 --- a/cpu/atmega1281/Makefile.features +++ b/cpu/atmega1281/Makefile.features @@ -1 +1,3 @@ --include $(RIOTCPU)/atmega_common/Makefile.features +FEATURES_PROVIDED += atmega_pcint1 atmega_pcint2 + +include $(RIOTCPU)/atmega_common/Makefile.features diff --git a/cpu/atmega1281/Makefile.include b/cpu/atmega1281/Makefile.include index 66add33aaa..3c826aa587 100644 --- a/cpu/atmega1281/Makefile.include +++ b/cpu/atmega1281/Makefile.include @@ -4,5 +4,10 @@ USEMODULE += atmega_common RAM_LEN = 8K ROM_LEN = 128K +# expand atmega_pcint for additional PCINTs of atmega1281 +ifneq (,$(filter atmega_pcint,$(USEMODULE))) + USEMODULE += atmega_pcint1 atmega_pcint2 +endif + # CPU depends on the atmega common module, so include it include $(RIOTCPU)/atmega_common/Makefile.include diff --git a/cpu/atmega1281/include/atmega_pcint.h b/cpu/atmega1281/include/atmega_pcint.h new file mode 100644 index 0000000000..c0f6d6d28c --- /dev/null +++ b/cpu/atmega1281/include/atmega_pcint.h @@ -0,0 +1,16 @@ +#ifndef ATMEGA_PCINT_H +#define ATMEGA_PCINT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define ATMEGA_PCINT_MAP_PCINT0 GPIO_PIN(PORT_B, 0), GPIO_PIN(PORT_B, 1), GPIO_PIN(PORT_B, 2), GPIO_PIN(PORT_B, 3), GPIO_PIN(PORT_B, 4), GPIO_PIN(PORT_B, 5), GPIO_PIN(PORT_B, 6), GPIO_PIN(PORT_B, 7) +#define ATMEGA_PCINT_MAP_PCINT1 GPIO_PIN(PORT_E, 0), GPIO_PIN(PORT_J, 0), GPIO_PIN(PORT_J, 1), GPIO_PIN(PORT_J, 2), GPIO_PIN(PORT_J, 3), GPIO_PIN(PORT_J, 4), GPIO_PIN(PORT_J, 5), GPIO_PIN(PORT_J, 6) +#define ATMEGA_PCINT_MAP_PCINT2 GPIO_PIN(PORT_K, 0), GPIO_PIN(PORT_K, 1), GPIO_PIN(PORT_K, 2), GPIO_PIN(PORT_K, 3), GPIO_PIN(PORT_K, 4), GPIO_PIN(PORT_K, 5), GPIO_PIN(PORT_K, 6), GPIO_PIN(PORT_K, 7) + +#ifdef __cplusplus +} +#endif + +#endif /* ATMEGA_PCINT_H */