uart: minor, improve readability

This commit is contained in:
King Kévin 2020-02-11 12:23:10 +01:00
parent 4bfcca9d50
commit 2d39e39999
2 changed files with 8 additions and 8 deletions

View File

@ -13,9 +13,9 @@
* *
*/ */
/** library for UART communication (code) /** library for UART communication (code)
* @file uart.c * @file
* @author King Kévin <kingkevin@cuvoodoo.info> * @author King Kévin <kingkevin@cuvoodoo.info>
* @date 2016-2018 * @date 2016-2020
* @note peripherals used: USART @ref uart * @note peripherals used: USART @ref uart
*/ */
@ -90,12 +90,12 @@ void uart_flush(void)
void uart_putchar_nonblocking(char c) void uart_putchar_nonblocking(char c)
{ {
while (tx_used>=LENGTH(tx_buffer)) { // idle until buffer has some space while (tx_used >= LENGTH(tx_buffer)) { // idle until buffer has some space
usart_enable_tx_interrupt(USART(UART_ID)); // enable transmit interrupt usart_enable_tx_interrupt(USART(UART_ID)); // enable transmit interrupt
// don't go to sleep since this might prevent an interrupt // don't go to sleep since this might prevent an interrupt
} }
usart_disable_tx_interrupt(USART(UART_ID)); // disable transmit interrupt to prevent index corruption usart_disable_tx_interrupt(USART(UART_ID)); // disable transmit interrupt to prevent index corruption
tx_buffer[(tx_i+tx_used)%LENGTH(tx_buffer)] = c; // put character in buffer tx_buffer[(tx_i + tx_used) % LENGTH(tx_buffer)] = c; // put character in buffer
tx_used++; // update used buffer tx_used++; // update used buffer
usart_enable_tx_interrupt(USART(UART_ID)); // enable transmit interrupt usart_enable_tx_interrupt(USART(UART_ID)); // enable transmit interrupt
} }
@ -107,8 +107,8 @@ void USART_ISR(UART_ID)(void)
if (!tx_used) { // no data in the buffer to transmit if (!tx_used) { // no data in the buffer to transmit
usart_disable_tx_interrupt(USART(UART_ID)); // disable transmit interrupt usart_disable_tx_interrupt(USART(UART_ID)); // disable transmit interrupt
} else { } else {
usart_send(USART(UART_ID),tx_buffer[tx_i]); // put data in transmit register usart_send(USART(UART_ID), tx_buffer[tx_i]); // put data in transmit register
tx_i = (tx_i+1)%LENGTH(tx_buffer); // update location on buffer tx_i = (tx_i + 1) % LENGTH(tx_buffer); // update location on buffer
tx_used--; // update used size tx_used--; // update used size
} }
} }

View File

@ -13,9 +13,9 @@
* *
*/ */
/** library for UART communication (API) /** library for UART communication (API)
* @file uart.h * @file
* @author King Kévin <kingkevin@cuvoodoo.info> * @author King Kévin <kingkevin@cuvoodoo.info>
* @date 2016-2018 * @date 2016-2020
* @note peripherals used: USART @ref uart * @note peripherals used: USART @ref uart
*/ */
#pragma once #pragma once