Ein Roboter mit bürstenlosem Antrieb, differenzial und NRF24L01 Funk. Großflächig gebaut um ein großes Solarpanel aufzunehmen. https://gitlab.informatik.hs-fulda.de/fdai5253/roboter
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
1.0 KiB

  1. /*
  2. * gpio_helper.c
  3. *
  4. * Created: 22/1/2016 15:28:48
  5. * Author: akatran
  6. */
  7. #include "gpio_helper.h"
  8. /**
  9. * Get the port corresponding in portnum. Default is PORTC.
  10. */
  11. PORT_t * GPIO_getPort(int pinnum, uint8_t * pin_bm)
  12. //PORT_t * GPIO_getPort(int portnum)
  13. {
  14. PORT_t * port = &PORTC;
  15. if ( (pinnum >= XMEGA_PORTA_PIN0) && (pinnum<= XMEGA_PORTA_PIN7) )
  16. {
  17. port = &PORTA;
  18. *pin_bm = (1<<pinnum);
  19. }else if ( (pinnum >= XMEGA_PORTB_PIN0) && (pinnum<= XMEGA_PORTB_PIN7) )
  20. {
  21. port = &PORTB;
  22. *pin_bm = (1<<(pinnum-8));
  23. }else if ( (pinnum >= XMEGA_PORTC_PIN0) && (pinnum<= XMEGA_PORTC_PIN7) )
  24. {
  25. port = &PORTC;
  26. *pin_bm = (1<<(pinnum-16));
  27. }else if ( (pinnum >= XMEGA_PORTD_PIN0) && (pinnum<= XMEGA_PORTD_PIN7) )
  28. {
  29. port = &PORTD;
  30. *pin_bm = (1<<(pinnum-24));
  31. }else if ( (pinnum >= XMEGA_PORTE_PIN0) && (pinnum<= XMEGA_PORTE_PIN7) )
  32. {
  33. port = &PORTE;
  34. *pin_bm = (1<<(pinnum-32));
  35. }else if ( (pinnum >= XMEGA_PORTF_PIN0) && (pinnum<= XMEGA_PORTF_PIN7) )
  36. {
  37. port = &PORTF;
  38. *pin_bm = (1<<(pinnum-40));
  39. }
  40. return port;
  41. }