11 #include "inc/hw_memmap.h"
12 #include "inc/hw_ints.h"
14 #include "driverlib/sysctl.h"
15 #include "driverlib/gpio.h"
17 #include "driverlib/timer.h"
25 uint32_t periph_base = 0xDEADBEEF;
27 case GPIO_PORTA_BASE: periph_base = SYSCTL_PERIPH_GPIOA;
break;
28 case GPIO_PORTB_BASE: periph_base = SYSCTL_PERIPH_GPIOB;
break;
29 case GPIO_PORTC_BASE: periph_base = SYSCTL_PERIPH_GPIOC;
break;
30 case GPIO_PORTD_BASE: periph_base = SYSCTL_PERIPH_GPIOD;
break;
31 case GPIO_PORTE_BASE: periph_base = SYSCTL_PERIPH_GPIOE;
break;
32 case GPIO_PORTF_BASE: periph_base = SYSCTL_PERIPH_GPIOF;
break;
33 case GPIO_PORTG_BASE: periph_base = SYSCTL_PERIPH_GPIOG;
break;
34 case GPIO_PORTH_BASE: periph_base = SYSCTL_PERIPH_GPIOH;
break;
35 case GPIO_PORTJ_BASE: periph_base = SYSCTL_PERIPH_GPIOJ;
break;
36 case PWM0_BASE: periph_base = SYSCTL_PERIPH_PWM0;
break;
37 case PWM1_BASE: periph_base = SYSCTL_PERIPH_PWM1;
break;
38 case CAN0_BASE: periph_base = SYSCTL_PERIPH_CAN0;
break;
39 case CAN1_BASE: periph_base = SYSCTL_PERIPH_CAN1;
break;
43 SysCtlPeripheralEnable(periph_base);
49 uint32_t timeout = 0x0;
52 case TIMER_A: timeout = TIMER_TIMA_TIMEOUT;
break;
53 case TIMER_B: timeout = TIMER_TIMB_TIMEOUT;
break;
61 case GPIO_PIN_0:
return GPIO_INT_PIN_0;
62 case GPIO_PIN_1:
return GPIO_INT_PIN_1;
63 case GPIO_PIN_2:
return GPIO_INT_PIN_2;
64 case GPIO_PIN_3:
return GPIO_INT_PIN_3;
65 case GPIO_PIN_4:
return GPIO_INT_PIN_4;
66 case GPIO_PIN_5:
return GPIO_INT_PIN_5;
67 case GPIO_PIN_6:
return GPIO_INT_PIN_6;
68 case GPIO_PIN_7:
return GPIO_INT_PIN_7;
75 case GPIO_PORTA_BASE:
return INT_GPIOA_TM4C123;
76 case GPIO_PORTB_BASE:
return INT_GPIOB_TM4C123;
77 case GPIO_PORTC_BASE:
return INT_GPIOC_TM4C123;
78 case GPIO_PORTD_BASE:
return INT_GPIOD_TM4C123;
79 case GPIO_PORTE_BASE:
return INT_GPIOE_TM4C123;
80 case GPIO_PORTF_BASE:
return INT_GPIOF_TM4C123;
81 case GPIO_PORTG_BASE:
return INT_GPIOG_TM4C123;
82 case GPIO_PORTH_BASE:
return INT_GPIOH_TM4C123;
83 case CAN0_BASE:
return INT_CAN0_TM4C123;
90 GPIOIntClear(base, interrupt);
96 GPIOIntDisable(base, interrupt);
99 static void gpio_int_enable(uint32_t base, uint32_t pin,
bool clear_int =
false) {
105 GPIOIntEnable(base, interrupt);
110 SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
static void gpio_int_enable(uint32_t base, uint32_t pin, bool clear_int=false)
static uint32_t gpio_pin_to_int(uint32_t pin)
static void static_EndCritical(uint32_t primask)
static void gpio_int_disable(uint32_t base, uint32_t pin)
static void gpio_int_clear(uint32_t base, uint32_t pin)
static uint32_t timer_timeout_from_subtimer(uint32_t subtimer)
static void set_clock(void)
static uint32_t static_StartCritical(void)
static uint32_t periph_to_int(uint32_t periph)
static void enable_periph(uint32_t sys_periph)