#ifndef _USART_H_
#define _USART_H_
/**
* @file usart.h
* @author Giovani Baratto ([email protected])
* @brief Procedimentos para configurar, ler e escrever na USART0
* @version 0.1
* @date 2024-03-27
*
*/
#include <stdint.h> // usamos o tipo uint8_t
#include <avr/pgmspace.h> // usamos pgm_read_byte()
// Veja página 206 do manual de especificações do ATMega2560
/**
@brief Configura o periférico USART0 no modo assíncrono e quadros no formato 8N1. A taxa de transmissão é 57600 BAUD,
considerando uma frequência de relógio de 16 MHz. Habilita a USART para receber e transmittir (full-duplex)
*/
void USART0_configura(void);
// Veja a página 207 do manual de especificações do ATMega2560
void USART0_transmite(uint8_t dado);
// Veja a página 210 do manual de especificações do ATMega2560
uint8_t USART0_recebe(void);
/**
* @brief Transmite uma string armazenada na memória RAM pela USART0
* @param str endereço da string a ser transmitida
*/
void USART0_transmite_string_RAM(uint8_t *str);
/**
* @brief Transmite uma string armazenada na memória FLASH pela USART0
* @param str endereço da string a ser transmitida
*/
void USART0_transmite_string_FLASH(uint8_t *str);
#endif _USART_H_