From ea4510dfe03f891340985594c4de15134e548853 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 17 Nov 2015 12:54:57 +0000 Subject: recvr --- polycom_recv/uart.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 polycom_recv/uart.c (limited to 'polycom_recv/uart.c') diff --git a/polycom_recv/uart.c b/polycom_recv/uart.c new file mode 100644 index 0000000..5d7b5d3 --- /dev/null +++ b/polycom_recv/uart.c @@ -0,0 +1,61 @@ +#include "project.h" + + + +LOCAL void ICACHE_FLASH_ATTR +uart0_config (uint32_t baud) +{ + + +// ETS_UART_INTR_ATTACH(uart0_rx_intr_handler, &(UartDev.rcv_buff)); + + PIN_PULLUP_DIS (PERIPHS_IO_MUX_U0TXD_U); + PIN_FUNC_SELECT (PERIPHS_IO_MUX_U0TXD_U, FUNC_U0TXD); + + + + uart_div_modify (UART0, UART_CLK_FREQ / baud); + + SET_PERI_REG_MASK (UART_CONF0 (UART0), UART_RXFIFO_RST | UART_TXFIFO_RST); //RESET FIFO + CLEAR_PERI_REG_MASK (UART_CONF0 (UART0), UART_RXFIFO_RST | UART_TXFIFO_RST); + + WRITE_PERI_REG (UART_CONF1 (UART0), + ((100 & UART_RXFIFO_FULL_THRHD) << UART_RXFIFO_FULL_THRHD_S) + | (0x02 & UART_RX_TOUT_THRHD) << UART_RX_TOUT_THRHD_S | + UART_RX_TOUT_EN | ((0x10 & UART_TXFIFO_EMPTY_THRHD) << + UART_TXFIFO_EMPTY_THRHD_S)); + SET_PERI_REG_MASK (UART_INT_ENA (UART0), + UART_RXFIFO_TOUT_INT_ENA | UART_FRM_ERR_INT_ENA); + + + + WRITE_PERI_REG (UART_INT_CLR (UART0), 0xffff); + //enable rx_interrupt + //SET_PERI_REG_MASK(UART_INT_ENA(UART0), UART_RXFIFO_FULL_INT_ENA|UART_RXFIFO_OVF_INT_ENA); +} + + + +STATUS +uart0_tx_one_char (uint8 TxChar) +{ + while (true) + { + uint32 fifo_cnt = + READ_PERI_REG (UART_STATUS (UART0)) & (UART_TXFIFO_CNT << + UART_TXFIFO_CNT_S); + if ((fifo_cnt >> UART_TXFIFO_CNT_S & UART_TXFIFO_CNT) < 126) + { + break; + } + } + WRITE_PERI_REG (UART_FIFO (UART0), TxChar); + return OK; +} + + +void ICACHE_FLASH_ATTR +uart_init (void) +{ + uart0_config (115200); +} -- cgit v1.2.3