/* * Copyright (C) 2014 Freie Universität Berlin * Copyright (C) 2014 PHYTEC Messtechnik GmbH * Copyright (C) 2014 Eistec AB * * This file is subject to the terms and conditions of the GNU Lesser General * Public License v2.1. See the file LICENSE in the top level directory for more * details. */ /** * @ingroup cpu_kinetis_common_gpio * * @{ * * @file * @brief Low-level GPIO driver implementation * * @author Hauke Petersen * @author Johann Fischer * @author Jonas Remmert * @author Joakim Gebart PCR[pin] = PORT_PCR_MUX(PIN_MUX_FUNCTION_ANALOG); /* set to push-pull configuration */ switch (pushpull) { case GPIO_PULLUP: port->PCR[pin] |= PORT_PCR_PE_MASK | PORT_PCR_PS_MASK; /* Pull enable, pull up */ break; case GPIO_PULLDOWN: port->PCR[pin] |= PORT_PCR_PE_MASK; /* Pull enable, !pull up */ break; default: break; } if (dir == GPIO_DIR_OUT) { gpio->PDDR |= GPIO_PDDR_PDD(1 << pin); /* set pin to output mode */ gpio->PCOR |= GPIO_PCOR_PTCO(1 << pin); /* set output to low */ } else { gpio->PDDR &= ~(GPIO_PDDR_PDD(1 << pin)); /* set pin to input mode */ } /* Select GPIO function for the pin */ port->PCR[pin] |= PORT_PCR_MUX(PIN_MUX_FUNCTION_GPIO); return 0; } int gpio_init_int(gpio_t dev, gpio_pp_t pushpull, gpio_flank_t flank, gpio_cb_t cb, void *arg) { int res; res = gpio_init(dev, GPIO_DIR_IN, pushpull); if (res < 0) { return res; } switch (dev) { #if GPIO_0_EN case GPIO_0: NVIC_SetPriority(GPIO_0_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_0_IRQ); break; #endif #if GPIO_1_EN case GPIO_1: NVIC_SetPriority(GPIO_1_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_1_IRQ); break; #endif #if GPIO_2_EN case GPIO_2: NVIC_SetPriority(GPIO_2_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_2_IRQ); break; #endif #if GPIO_3_EN case GPIO_3: NVIC_SetPriority(GPIO_3_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_3_IRQ); break; #endif #if GPIO_4_EN case GPIO_4: NVIC_SetPriority(GPIO_4_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_4_IRQ); break; #endif #if GPIO_5_EN case GPIO_5: NVIC_SetPriority(GPIO_5_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_5_IRQ); break; #endif #if GPIO_6_EN case GPIO_6: NVIC_SetPriority(GPIO_6_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_6_IRQ); break; #endif #if GPIO_7_EN case GPIO_7: NVIC_SetPriority(GPIO_7_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_7_IRQ); break; #endif #if GPIO_8_EN case GPIO_8: NVIC_SetPriority(GPIO_8_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_8_IRQ); break; #endif #if GPIO_9_EN case GPIO_9: NVIC_SetPriority(GPIO_9_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_9_IRQ); break; #endif #if GPIO_10_EN case GPIO_10: NVIC_SetPriority(GPIO_10_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_10_IRQ); break; #endif #if GPIO_11_EN case GPIO_11: NVIC_SetPriority(GPIO_11_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_11_IRQ); break; #endif #if GPIO_12_EN case GPIO_12: NVIC_SetPriority(GPIO_12_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_12_IRQ); break; #endif #if GPIO_13_EN case GPIO_13: NVIC_SetPriority(GPIO_13_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_13_IRQ); break; #endif #if GPIO_14_EN case GPIO_14: NVIC_SetPriority(GPIO_14_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_14_IRQ); break; #endif #if GPIO_15_EN case GPIO_15: NVIC_SetPriority(GPIO_15_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_15_IRQ); break; #endif #if GPIO_16_EN case GPIO_16: NVIC_SetPriority(GPIO_16_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_16_IRQ); break; #endif #if GPIO_17_EN case GPIO_17: NVIC_SetPriority(GPIO_17_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_17_IRQ); break; #endif #if GPIO_18_EN case GPIO_18: NVIC_SetPriority(GPIO_18_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_18_IRQ); break; #endif #if GPIO_19_EN case GPIO_19: NVIC_SetPriority(GPIO_19_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_19_IRQ); break; #endif #if GPIO_20_EN case GPIO_20: NVIC_SetPriority(GPIO_20_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_20_IRQ); break; #endif #if GPIO_21_EN case GPIO_21: NVIC_SetPriority(GPIO_21_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_21_IRQ); break; #endif #if GPIO_22_EN case GPIO_22: NVIC_SetPriority(GPIO_22_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_22_IRQ); break; #endif #if GPIO_23_EN case GPIO_23: NVIC_SetPriority(GPIO_23_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_23_IRQ); break; #endif #if GPIO_24_EN case GPIO_24: NVIC_SetPriority(GPIO_24_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_24_IRQ); break; #endif #if GPIO_25_EN case GPIO_25: NVIC_SetPriority(GPIO_25_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_25_IRQ); break; #endif #if GPIO_26_EN case GPIO_26: NVIC_SetPriority(GPIO_26_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_26_IRQ); break; #endif #if GPIO_27_EN case GPIO_27: NVIC_SetPriority(GPIO_27_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_27_IRQ); break; #endif #if GPIO_28_EN case GPIO_28: NVIC_SetPriority(GPIO_28_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_28_IRQ); break; #endif #if GPIO_29_EN case GPIO_29: NVIC_SetPriority(GPIO_29_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_29_IRQ); break; #endif #if GPIO_30_EN case GPIO_30: NVIC_SetPriority(GPIO_30_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_30_IRQ); break; #endif #if GPIO_31_EN case GPIO_31: NVIC_SetPriority(GPIO_31_IRQ, GPIO_IRQ_PRIO); NVIC_EnableIRQ(GPIO_31_IRQ); break; #endif default: return -1; } uint8_t pin = kinetis_gpio_lut[dev].pin; PORT_Type *port = kinetis_gpio_lut[dev].port; /* set callback */ config[dev].cb = cb; config[dev].arg = arg; /* configure the active edges */ switch (flank) { case GPIO_RISING: port->PCR[pin] &= ~(PORT_PCR_IRQC_MASK); /* Disable interrupt */ port->PCR[pin] |= PORT_PCR_ISF_MASK; /* Clear interrupt flag */ port->PCR[pin] |= PORT_PCR_IRQC(PIN_INTERRUPT_RISING); /* Enable interrupt */ config[dev].irqc = PORT_PCR_IRQC(PIN_INTERRUPT_RISING); break; case GPIO_FALLING: port->PCR[pin] &= ~(PORT_PCR_IRQC_MASK); /* Disable interrupt */ port->PCR[pin] |= PORT_PCR_ISF_MASK; /* Clear interrupt flag */ port->PCR[pin] |= PORT_PCR_IRQC(PIN_INTERRUPT_FALLING); /* Enable interrupt */ config[dev].irqc = PORT_PCR_IRQC(PIN_INTERRUPT_FALLING); break; case GPIO_BOTH: port->PCR[pin] &= ~(PORT_PCR_IRQC_MASK); /* Disable interrupt */ port->PCR[pin] |= PORT_PCR_ISF_MASK; /* Clear interrupt flag */ port->PCR[pin] |= PORT_PCR_IRQC(PIN_INTERRUPT_EDGE); /* Enable interrupt */ config[dev].irqc = PORT_PCR_IRQC(PIN_INTERRUPT_EDGE); break; default: /* Unknown setting */ return -1; } return 0; } void gpio_irq_enable(gpio_t dev) { if (dev >= GPIO_NUMOF) { DEBUG("gpio_t out of range: %d >= %d\n", dev, GPIO_NUMOF); return; } uint8_t pin = kinetis_gpio_lut[dev].pin; PORT_Type *port = kinetis_gpio_lut[dev].port; /* Restore saved state */ port->PCR[pin] &= ~(PORT_PCR_IRQC_MASK); port->PCR[pin] |= PORT_PCR_IRQC_MASK & config[dev].irqc; } void gpio_irq_disable(gpio_t dev) { if (dev >= GPIO_NUMOF) { DEBUG("gpio_t out of range: %d >= %d\n", dev, GPIO_NUMOF); return; } uint8_t pin = kinetis_gpio_lut[dev].pin; PORT_Type *port = kinetis_gpio_lut[dev].port; /* Save irqc state before disabling to allow enabling with the same trigger settings later. */ config[dev].irqc = PORT_PCR_IRQC_MASK & port->PCR[pin]; port->PCR[pin] &= ~(PORT_PCR_IRQC_MASK); } int gpio_read(gpio_t dev) { if (dev >= GPIO_NUMOF) { DEBUG("gpio_t out of range: %d >= %d\n", dev, GPIO_NUMOF); return -1; } uint8_t pin = kinetis_gpio_lut[dev].pin; GPIO_Type *gpio = kinetis_gpio_lut[dev].gpio; if (gpio->PDDR & GPIO_PDDR_PDD(1 << pin)) { /* if configured as output */ /* read output data register */ return gpio->PDOR & GPIO_PDOR_PDO(1 << pin); } else { /* else read input data register */ return gpio->PDIR & GPIO_PDIR_PDI(1 << pin); } } void gpio_set(gpio_t dev) { if (dev >= GPIO_NUMOF) { DEBUG("gpio_t out of range: %d >= %d\n", dev, GPIO_NUMOF); return; } kinetis_gpio_lut[dev].gpio->PSOR = (1 << kinetis_gpio_lut[dev].pin); } void gpio_clear(gpio_t dev) { if (dev >= GPIO_NUMOF) { DEBUG("gpio_t out of range: %d >= %d\n", dev, GPIO_NUMOF); return; } kinetis_gpio_lut[dev].gpio->PCOR = (1 << kinetis_gpio_lut[dev].pin); } void gpio_toggle(gpio_t dev) { if (dev >= GPIO_NUMOF) { DEBUG("gpio_t out of range: %d >= %d\n", dev, GPIO_NUMOF); return; } kinetis_gpio_lut[dev].gpio->PTOR = (1 << kinetis_gpio_lut[dev].pin); } void gpio_write(gpio_t dev, int value) { if (value) { gpio_set(dev); } else { gpio_clear(dev); } } static inline void irq_handler(gpio_t dev) { config[dev].cb(config[dev].arg); if (sched_context_switch_request) { thread_yield(); } } /* the following interrupt handlers are quite ugly, the preprocessor is used to * insert only the relevant checks in each isr, however, in the source all of * the ISRs contain all GPIO checks... */ #define GPIO_ISR_TEMPLATE(gpio) \ if (gpio##_PORT->ISFR & PORT_ISFR_ISF(1 << gpio##_PIN)) { \ irq_handler(gpio); \ /* clear status bit by writing a 1 to it */ \ gpio##_PORT->ISFR = PORT_ISFR_ISF(1 << gpio##_PIN); \ } /* Generate the below part with: (in bash or zsh) for p in $(seq 8 | tr 123456789 abcdefghi); do echo -n " #if PORT$(echo $p | tr '[:lower:]' '[:upper:]')_BASE void ISR_PORT_${p}(void) { "; for f in $(seq 0 31); do echo -n " #if GPIO_${f}_EN && (GPIO_${f}_PORT_BASE == PORT$(echo $p | tr '[:lower:]' '[:upper:]')_BASE) GPIO_ISR_TEMPLATE(GPIO_${f}) #endif "; done; echo -n " } #endif // PORT$(echo $p | tr '[:lower:]' '[:upper:]')_BASE "; done > gpio-isr.c */ /* Script generated code below. */ /* -------------------------------------------------------------------------- */ #if PORTA_BASE void ISR_PORT_A(void) { #if GPIO_0_EN && (GPIO_0_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_0) #endif #if GPIO_1_EN && (GPIO_1_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_1) #endif #if GPIO_2_EN && (GPIO_2_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_2) #endif #if GPIO_3_EN && (GPIO_3_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_3) #endif #if GPIO_4_EN && (GPIO_4_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_4) #endif #if GPIO_5_EN && (GPIO_5_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_5) #endif #if GPIO_6_EN && (GPIO_6_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_6) #endif #if GPIO_7_EN && (GPIO_7_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_7) #endif #if GPIO_8_EN && (GPIO_8_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_8) #endif #if GPIO_9_EN && (GPIO_9_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_9) #endif #if GPIO_10_EN && (GPIO_10_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_10) #endif #if GPIO_11_EN && (GPIO_11_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_11) #endif #if GPIO_12_EN && (GPIO_12_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_12) #endif #if GPIO_13_EN && (GPIO_13_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_13) #endif #if GPIO_14_EN && (GPIO_14_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_14) #endif #if GPIO_15_EN && (GPIO_15_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_15) #endif #if GPIO_16_EN && (GPIO_16_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_16) #endif #if GPIO_17_EN && (GPIO_17_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_17) #endif #if GPIO_18_EN && (GPIO_18_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_18) #endif #if GPIO_19_EN && (GPIO_19_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_19) #endif #if GPIO_20_EN && (GPIO_20_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_20) #endif #if GPIO_21_EN && (GPIO_21_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_21) #endif #if GPIO_22_EN && (GPIO_22_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_22) #endif #if GPIO_23_EN && (GPIO_23_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_23) #endif #if GPIO_24_EN && (GPIO_24_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_24) #endif #if GPIO_25_EN && (GPIO_25_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_25) #endif #if GPIO_26_EN && (GPIO_26_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_26) #endif #if GPIO_27_EN && (GPIO_27_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_27) #endif #if GPIO_28_EN && (GPIO_28_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_28) #endif #if GPIO_29_EN && (GPIO_29_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_29) #endif #if GPIO_30_EN && (GPIO_30_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_30) #endif #if GPIO_31_EN && (GPIO_31_PORT_BASE == PORTA_BASE) GPIO_ISR_TEMPLATE(GPIO_31) #endif } #endif /* PORTA_BASE */ #if PORTB_BASE void ISR_PORT_B(void) { #if GPIO_0_EN && (GPIO_0_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_0) #endif #if GPIO_1_EN && (GPIO_1_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_1) #endif #if GPIO_2_EN && (GPIO_2_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_2) #endif #if GPIO_3_EN && (GPIO_3_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_3) #endif #if GPIO_4_EN && (GPIO_4_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_4) #endif #if GPIO_5_EN && (GPIO_5_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_5) #endif #if GPIO_6_EN && (GPIO_6_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_6) #endif #if GPIO_7_EN && (GPIO_7_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_7) #endif #if GPIO_8_EN && (GPIO_8_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_8) #endif #if GPIO_9_EN && (GPIO_9_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_9) #endif #if GPIO_10_EN && (GPIO_10_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_10) #endif #if GPIO_11_EN && (GPIO_11_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_11) #endif #if GPIO_12_EN && (GPIO_12_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_12) #endif #if GPIO_13_EN && (GPIO_13_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_13) #endif #if GPIO_14_EN && (GPIO_14_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_14) #endif #if GPIO_15_EN && (GPIO_15_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_15) #endif #if GPIO_16_EN && (GPIO_16_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_16) #endif #if GPIO_17_EN && (GPIO_17_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_17) #endif #if GPIO_18_EN && (GPIO_18_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_18) #endif #if GPIO_19_EN && (GPIO_19_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_19) #endif #if GPIO_20_EN && (GPIO_20_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_20) #endif #if GPIO_21_EN && (GPIO_21_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_21) #endif #if GPIO_22_EN && (GPIO_22_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_22) #endif #if GPIO_23_EN && (GPIO_23_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_23) #endif #if GPIO_24_EN && (GPIO_24_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_24) #endif #if GPIO_25_EN && (GPIO_25_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_25) #endif #if GPIO_26_EN && (GPIO_26_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_26) #endif #if GPIO_27_EN && (GPIO_27_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_27) #endif #if GPIO_28_EN && (GPIO_28_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_28) #endif #if GPIO_29_EN && (GPIO_29_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_29) #endif #if GPIO_30_EN && (GPIO_30_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_30) #endif #if GPIO_31_EN && (GPIO_31_PORT_BASE == PORTB_BASE) GPIO_ISR_TEMPLATE(GPIO_31) #endif } #endif /* PORTB_BASE */ #if PORTC_BASE void ISR_PORT_C(void) { #if GPIO_0_EN && (GPIO_0_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_0) #endif #if GPIO_1_EN && (GPIO_1_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_1) #endif #if GPIO_2_EN && (GPIO_2_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_2) #endif #if GPIO_3_EN && (GPIO_3_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_3) #endif #if GPIO_4_EN && (GPIO_4_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_4) #endif #if GPIO_5_EN && (GPIO_5_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_5) #endif #if GPIO_6_EN && (GPIO_6_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_6) #endif #if GPIO_7_EN && (GPIO_7_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_7) #endif #if GPIO_8_EN && (GPIO_8_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_8) #endif #if GPIO_9_EN && (GPIO_9_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_9) #endif #if GPIO_10_EN && (GPIO_10_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_10) #endif #if GPIO_11_EN && (GPIO_11_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_11) #endif #if GPIO_12_EN && (GPIO_12_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_12) #endif #if GPIO_13_EN && (GPIO_13_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_13) #endif #if GPIO_14_EN && (GPIO_14_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_14) #endif #if GPIO_15_EN && (GPIO_15_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_15) #endif #if GPIO_16_EN && (GPIO_16_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_16) #endif #if GPIO_17_EN && (GPIO_17_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_17) #endif #if GPIO_18_EN && (GPIO_18_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_18) #endif #if GPIO_19_EN && (GPIO_19_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_19) #endif #if GPIO_20_EN && (GPIO_20_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_20) #endif #if GPIO_21_EN && (GPIO_21_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_21) #endif #if GPIO_22_EN && (GPIO_22_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_22) #endif #if GPIO_23_EN && (GPIO_23_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_23) #endif #if GPIO_24_EN && (GPIO_24_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_24) #endif #if GPIO_25_EN && (GPIO_25_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_25) #endif #if GPIO_26_EN && (GPIO_26_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_26) #endif #if GPIO_27_EN && (GPIO_27_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_27) #endif #if GPIO_28_EN && (GPIO_28_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_28) #endif #if GPIO_29_EN && (GPIO_29_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_29) #endif #if GPIO_30_EN && (GPIO_30_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_30) #endif #if GPIO_31_EN && (GPIO_31_PORT_BASE == PORTC_BASE) GPIO_ISR_TEMPLATE(GPIO_31) #endif } #endif /* PORTC_BASE */ #if PORTD_BASE void ISR_PORT_D(void) { #if GPIO_0_EN && (GPIO_0_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_0) #endif #if GPIO_1_EN && (GPIO_1_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_1) #endif #if GPIO_2_EN && (GPIO_2_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_2) #endif #if GPIO_3_EN && (GPIO_3_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_3) #endif #if GPIO_4_EN && (GPIO_4_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_4) #endif #if GPIO_5_EN && (GPIO_5_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_5) #endif #if GPIO_6_EN && (GPIO_6_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_6) #endif #if GPIO_7_EN && (GPIO_7_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_7) #endif #if GPIO_8_EN && (GPIO_8_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_8) #endif #if GPIO_9_EN && (GPIO_9_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_9) #endif #if GPIO_10_EN && (GPIO_10_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_10) #endif #if GPIO_11_EN && (GPIO_11_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_11) #endif #if GPIO_12_EN && (GPIO_12_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_12) #endif #if GPIO_13_EN && (GPIO_13_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_13) #endif #if GPIO_14_EN && (GPIO_14_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_14) #endif #if GPIO_15_EN && (GPIO_15_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_15) #endif #if GPIO_16_EN && (GPIO_16_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_16) #endif #if GPIO_17_EN && (GPIO_17_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_17) #endif #if GPIO_18_EN && (GPIO_18_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_18) #endif #if GPIO_19_EN && (GPIO_19_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_19) #endif #if GPIO_20_EN && (GPIO_20_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_20) #endif #if GPIO_21_EN && (GPIO_21_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_21) #endif #if GPIO_22_EN && (GPIO_22_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_22) #endif #if GPIO_23_EN && (GPIO_23_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_23) #endif #if GPIO_24_EN && (GPIO_24_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_24) #endif #if GPIO_25_EN && (GPIO_25_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_25) #endif #if GPIO_26_EN && (GPIO_26_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_26) #endif #if GPIO_27_EN && (GPIO_27_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_27) #endif #if GPIO_28_EN && (GPIO_28_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_28) #endif #if GPIO_29_EN && (GPIO_29_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_29) #endif #if GPIO_30_EN && (GPIO_30_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_30) #endif #if GPIO_31_EN && (GPIO_31_PORT_BASE == PORTD_BASE) GPIO_ISR_TEMPLATE(GPIO_31) #endif } #endif /* PORTD_BASE */ #if PORTE_BASE void ISR_PORT_E(void) { #if GPIO_0_EN && (GPIO_0_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_0) #endif #if GPIO_1_EN && (GPIO_1_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_1) #endif #if GPIO_2_EN && (GPIO_2_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_2) #endif #if GPIO_3_EN && (GPIO_3_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_3) #endif #if GPIO_4_EN && (GPIO_4_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_4) #endif #if GPIO_5_EN && (GPIO_5_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_5) #endif #if GPIO_6_EN && (GPIO_6_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_6) #endif #if GPIO_7_EN && (GPIO_7_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_7) #endif #if GPIO_8_EN && (GPIO_8_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_8) #endif #if GPIO_9_EN && (GPIO_9_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_9) #endif #if GPIO_10_EN && (GPIO_10_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_10) #endif #if GPIO_11_EN && (GPIO_11_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_11) #endif #if GPIO_12_EN && (GPIO_12_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_12) #endif #if GPIO_13_EN && (GPIO_13_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_13) #endif #if GPIO_14_EN && (GPIO_14_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_14) #endif #if GPIO_15_EN && (GPIO_15_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_15) #endif #if GPIO_16_EN && (GPIO_16_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_16) #endif #if GPIO_17_EN && (GPIO_17_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_17) #endif #if GPIO_18_EN && (GPIO_18_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_18) #endif #if GPIO_19_EN && (GPIO_19_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_19) #endif #if GPIO_20_EN && (GPIO_20_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_20) #endif #if GPIO_21_EN && (GPIO_21_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_21) #endif #if GPIO_22_EN && (GPIO_22_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_22) #endif #if GPIO_23_EN && (GPIO_23_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_23) #endif #if GPIO_24_EN && (GPIO_24_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_24) #endif #if GPIO_25_EN && (GPIO_25_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_25) #endif #if GPIO_26_EN && (GPIO_26_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_26) #endif #if GPIO_27_EN && (GPIO_27_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_27) #endif #if GPIO_28_EN && (GPIO_28_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_28) #endif #if GPIO_29_EN && (GPIO_29_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_29) #endif #if GPIO_30_EN && (GPIO_30_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_30) #endif #if GPIO_31_EN && (GPIO_31_PORT_BASE == PORTE_BASE) GPIO_ISR_TEMPLATE(GPIO_31) #endif } #endif /* PORTE_BASE */ #if PORTF_BASE void ISR_PORT_F(void) { #if GPIO_0_EN && (GPIO_0_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_0) #endif #if GPIO_1_EN && (GPIO_1_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_1) #endif #if GPIO_2_EN && (GPIO_2_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_2) #endif #if GPIO_3_EN && (GPIO_3_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_3) #endif #if GPIO_4_EN && (GPIO_4_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_4) #endif #if GPIO_5_EN && (GPIO_5_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_5) #endif #if GPIO_6_EN && (GPIO_6_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_6) #endif #if GPIO_7_EN && (GPIO_7_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_7) #endif #if GPIO_8_EN && (GPIO_8_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_8) #endif #if GPIO_9_EN && (GPIO_9_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_9) #endif #if GPIO_10_EN && (GPIO_10_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_10) #endif #if GPIO_11_EN && (GPIO_11_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_11) #endif #if GPIO_12_EN && (GPIO_12_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_12) #endif #if GPIO_13_EN && (GPIO_13_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_13) #endif #if GPIO_14_EN && (GPIO_14_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_14) #endif #if GPIO_15_EN && (GPIO_15_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_15) #endif #if GPIO_16_EN && (GPIO_16_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_16) #endif #if GPIO_17_EN && (GPIO_17_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_17) #endif #if GPIO_18_EN && (GPIO_18_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_18) #endif #if GPIO_19_EN && (GPIO_19_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_19) #endif #if GPIO_20_EN && (GPIO_20_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_20) #endif #if GPIO_21_EN && (GPIO_21_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_21) #endif #if GPIO_22_EN && (GPIO_22_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_22) #endif #if GPIO_23_EN && (GPIO_23_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_23) #endif #if GPIO_24_EN && (GPIO_24_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_24) #endif #if GPIO_25_EN && (GPIO_25_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_25) #endif #if GPIO_26_EN && (GPIO_26_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_26) #endif #if GPIO_27_EN && (GPIO_27_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_27) #endif #if GPIO_28_EN && (GPIO_28_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_28) #endif #if GPIO_29_EN && (GPIO_29_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_29) #endif #if GPIO_30_EN && (GPIO_30_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_30) #endif #if GPIO_31_EN && (GPIO_31_PORT_BASE == PORTF_BASE) GPIO_ISR_TEMPLATE(GPIO_31) #endif } #endif /* PORTF_BASE */ #if PORTG_BASE void ISR_PORT_G(void) { #if GPIO_0_EN && (GPIO_0_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_0) #endif #if GPIO_1_EN && (GPIO_1_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_1) #endif #if GPIO_2_EN && (GPIO_2_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_2) #endif #if GPIO_3_EN && (GPIO_3_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_3) #endif #if GPIO_4_EN && (GPIO_4_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_4) #endif #if GPIO_5_EN && (GPIO_5_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_5) #endif #if GPIO_6_EN && (GPIO_6_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_6) #endif #if GPIO_7_EN && (GPIO_7_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_7) #endif #if GPIO_8_EN && (GPIO_8_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_8) #endif #if GPIO_9_EN && (GPIO_9_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_9) #endif #if GPIO_10_EN && (GPIO_10_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_10) #endif #if GPIO_11_EN && (GPIO_11_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_11) #endif #if GPIO_12_EN && (GPIO_12_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_12) #endif #if GPIO_13_EN && (GPIO_13_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_13) #endif #if GPIO_14_EN && (GPIO_14_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_14) #endif #if GPIO_15_EN && (GPIO_15_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_15) #endif #if GPIO_16_EN && (GPIO_16_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_16) #endif #if GPIO_17_EN && (GPIO_17_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_17) #endif #if GPIO_18_EN && (GPIO_18_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_18) #endif #if GPIO_19_EN && (GPIO_19_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_19) #endif #if GPIO_20_EN && (GPIO_20_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_20) #endif #if GPIO_21_EN && (GPIO_21_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_21) #endif #if GPIO_22_EN && (GPIO_22_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_22) #endif #if GPIO_23_EN && (GPIO_23_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_23) #endif #if GPIO_24_EN && (GPIO_24_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_24) #endif #if GPIO_25_EN && (GPIO_25_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_25) #endif #if GPIO_26_EN && (GPIO_26_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_26) #endif #if GPIO_27_EN && (GPIO_27_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_27) #endif #if GPIO_28_EN && (GPIO_28_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_28) #endif #if GPIO_29_EN && (GPIO_29_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_29) #endif #if GPIO_30_EN && (GPIO_30_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_30) #endif #if GPIO_31_EN && (GPIO_31_PORT_BASE == PORTG_BASE) GPIO_ISR_TEMPLATE(GPIO_31) #endif } #endif /* PORTG_BASE */ #if PORTH_BASE void ISR_PORT_H(void) { #if GPIO_0_EN && (GPIO_0_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_0) #endif #if GPIO_1_EN && (GPIO_1_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_1) #endif #if GPIO_2_EN && (GPIO_2_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_2) #endif #if GPIO_3_EN && (GPIO_3_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_3) #endif #if GPIO_4_EN && (GPIO_4_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_4) #endif #if GPIO_5_EN && (GPIO_5_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_5) #endif #if GPIO_6_EN && (GPIO_6_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_6) #endif #if GPIO_7_EN && (GPIO_7_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_7) #endif #if GPIO_8_EN && (GPIO_8_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_8) #endif #if GPIO_9_EN && (GPIO_9_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_9) #endif #if GPIO_10_EN && (GPIO_10_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_10) #endif #if GPIO_11_EN && (GPIO_11_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_11) #endif #if GPIO_12_EN && (GPIO_12_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_12) #endif #if GPIO_13_EN && (GPIO_13_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_13) #endif #if GPIO_14_EN && (GPIO_14_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_14) #endif #if GPIO_15_EN && (GPIO_15_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_15) #endif #if GPIO_16_EN && (GPIO_16_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_16) #endif #if GPIO_17_EN && (GPIO_17_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_17) #endif #if GPIO_18_EN && (GPIO_18_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_18) #endif #if GPIO_19_EN && (GPIO_19_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_19) #endif #if GPIO_20_EN && (GPIO_20_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_20) #endif #if GPIO_21_EN && (GPIO_21_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_21) #endif #if GPIO_22_EN && (GPIO_22_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_22) #endif #if GPIO_23_EN && (GPIO_23_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_23) #endif #if GPIO_24_EN && (GPIO_24_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_24) #endif #if GPIO_25_EN && (GPIO_25_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_25) #endif #if GPIO_26_EN && (GPIO_26_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_26) #endif #if GPIO_27_EN && (GPIO_27_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_27) #endif #if GPIO_28_EN && (GPIO_28_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_28) #endif #if GPIO_29_EN && (GPIO_29_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_29) #endif #if GPIO_30_EN && (GPIO_30_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_30) #endif #if GPIO_31_EN && (GPIO_31_PORT_BASE == PORTH_BASE) GPIO_ISR_TEMPLATE(GPIO_31) #endif } #endif /* PORTH_BASE */