//Bibliotecas:
#define __AVR_ATmega2560__
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <stdint.h>
#include <util/delay.h>
/*Repita o problema anterior, configurando o periférico USART0 para receber e transmitir
quadros no formato 7E2.*/
//---------------------------------------------------------------------------------------------
/*
BaudRate = Fcpu/(16x(UBBR0+1))
BaudRate = 2400 Bd
Fcpu = 4 Mhz
UBBR0 = Registrador a ser calculado
UBBR0 = 4 Mhz/(8x2400) - 1
UBBR0= 207,333
*/
// Página 220 para as informações de USART0_configura
void USART0_configura(void)
{
UBRR0 = 207;
UCSR0A = 0x02; // RXC0=0, TXC0=0, UDRE0=0, FE0=0, DOR0=0, UPE0=0, U2X0=1 e MPCM0 = 0
UCSR0B = 0x10; // RXCIE0=0, TXCIE0=0, UDRIE0=0, RXEN0=1, TXEN0=1, UCSZ0[2]=0, RXB80=0 e TXB80=0
UCSR0C = 0x2C; //UMSEL0[1:0]=00, UPM0[1:0]=10, USBS0=1, UCSZ0[1:0]=10 e UCPOL0=0
}
/*
(c) Transmitimos 7 bits de dados no quadro: UCSZ0[2:0]=010.
(d) O bit de paridade par é transmitido: UPM0[1:0]=10.
(e) Geramos dois bit de parada: USBS0=1.
*/
int main(void)
{
//---------------------------------------------------------------------------------------------
// Definição das Variáveis - Definir nome e tipo das variáveis
//---------------------------------------------------------------------------------------------
//Configuração do sistema - Definir as entradas, saídas e pull-up a nível de registradores
//DDRx: 1-Out, 0-In PORTx: 1-High , 0-Low "Escrever" PINx: "Leitura"
//---------------------------------------------------------------------------------------------
//Configuração inicial das Variáveis
//---------------------------------------------------------------------------------------------
while (1) // Laço infinito que será executado
{
}
return 0;
}