/* * gpio_helper.c * * Created: 22/1/2016 15:28:48 * Author: akatran */ #include "gpio_helper.h" /** * Get the port corresponding in portnum. Default is PORTC. */ PORT_t* GPIO_getPort(int pinnum, uint8_t* pin_bm) //PORT_t * GPIO_getPort(int portnum) { PORT_t* port = &PORTC; if ((pinnum >= XMEGA_PORTA_PIN0) && (pinnum <= XMEGA_PORTA_PIN7)) { port = &PORTA; *pin_bm = (1 << pinnum); } else if ((pinnum >= XMEGA_PORTB_PIN0) && (pinnum <= XMEGA_PORTB_PIN7)) { port = &PORTB; *pin_bm = (1 << (pinnum - 8)); } else if ((pinnum >= XMEGA_PORTC_PIN0) && (pinnum <= XMEGA_PORTC_PIN7)) { port = &PORTC; *pin_bm = (1 << (pinnum - 16)); } else if ((pinnum >= XMEGA_PORTD_PIN0) && (pinnum <= XMEGA_PORTD_PIN7)) { port = &PORTD; *pin_bm = (1 << (pinnum - 24)); } else if ((pinnum >= XMEGA_PORTE_PIN0) && (pinnum <= XMEGA_PORTE_PIN7)) { port = &PORTE; *pin_bm = (1 << (pinnum - 32)); } else if ((pinnum >= XMEGA_PORTF_PIN0) && (pinnum <= XMEGA_PORTF_PIN7)) { port = &PORTF; *pin_bm = (1 << (pinnum - 40)); } return port; }