51 static int (* input_handler)(
unsigned char c);
53 #define UART_RX_PORT_BASE GPIO_PORT_TO_BASE(UART_RX_PORT)
54 #define UART_RX_PIN_MASK GPIO_PIN_MASK(UART_RX_PIN)
56 #define UART_TX_PORT_BASE GPIO_PORT_TO_BASE(UART_TX_PORT)
57 #define UART_TX_PIN_MASK GPIO_PIN_MASK(UART_TX_PIN)
59 #define UART_CTS_PORT_BASE GPIO_PORT_TO_BASE(UART_CTS_PORT)
60 #define UART_CTS_PIN_MASK GPIO_PIN_MASK(UART_CTS_PIN)
62 #define UART_RTS_PORT_BASE GPIO_PORT_TO_BASE(UART_RTS_PORT)
63 #define UART_RTS_PIN_MASK GPIO_PIN_MASK(UART_RTS_PIN)
69 #if UART_BASE==UART_1_BASE
71 #define SYS_CTRL_RCGCUART_UART SYS_CTRL_RCGCUART_UART1
72 #define SYS_CTRL_SCGCUART_UART SYS_CTRL_SCGCUART_UART1
73 #define SYS_CTRL_DCGCUART_UART SYS_CTRL_DCGCUART_UART1
75 #define NVIC_INT_UART NVIC_INT_UART1
76 #define IOC_PXX_SEL_UART_TXD IOC_PXX_SEL_UART1_TXD
77 #define IOC_UARTRXD_UART IOC_UARTRXD_UART1
79 #define SYS_CTRL_RCGCUART_UART SYS_CTRL_RCGCUART_UART0
80 #define SYS_CTRL_SCGCUART_UART SYS_CTRL_SCGCUART_UART0
81 #define SYS_CTRL_DCGCUART_UART SYS_CTRL_DCGCUART_UART0
83 #define NVIC_INT_UART NVIC_INT_UART0
85 #define IOC_PXX_SEL_UART_TXD IOC_PXX_SEL_UART0_TXD
86 #define IOC_UARTRXD_UART IOC_UARTRXD_UART0
142 REG(IOC_UARTRXD_UART) = (UART_RX_PORT << 3) + UART_RX_PIN;
149 ioc_set_sel(UART_TX_PORT, UART_TX_PIN, IOC_PXX_SEL_UART_TXD);
171 REG(UART_BASE |
UART_IBRD) = UART_CONF_IBRD;
172 REG(UART_BASE |
UART_FBRD) = UART_CONF_FBRD;
187 input_handler = input;
204 ENERGEST_ON(ENERGEST_TYPE_IRQ);
208 mis = REG(UART_BASE |
UART_MIS) & 0x0000FFFF;
210 REG(UART_BASE |
UART_ICR) = 0x0000FFBF;
214 if(input_handler !=
NULL) {
215 input_handler((
unsigned char)(REG(UART_BASE |
UART_DR) & 0xFF));
219 mis = REG(UART_BASE |
UART_DR);
227 ENERGEST_OFF(ENERGEST_TYPE_IRQ);