Tengo el siguiente circuito:
Y este código para ejecutarlo:
#define F_CPU 4915200UL // Quarz with 4.9152Mhz
#define BAUD 9600
#include <asf.h>
#include <avr/io.h>
#include "helpFile.h" // set/clear Bit (LED)
#include <util/delay.h>
void USART_Init( unsigned int ubrr )
{
/* Set baud rate */
UBRR0H = (unsigned char)(ubrr>>8);
UBRR0L = (unsigned char)ubrr;
/* Enable receiver ?nd transmitter */
UCSR0B = (1<<RXEN0)|(1<<TXEN0);
/* Set frame format 8data, 1stop bit */
UCSR0C = (1<<URSEL0)|(1<<USBS0)|(3<<UCSZ00);
}
void USART_Transmit( unsigned char data )
{
/* Wait for empty transmit buffer */
while ( !( UCSR0A & (1<<UDRE0)) )
;
/* Put data into bu?fer, sends the data */
UDR0 = data;
}
void main( void )
{
USART_Init(31);
DDRB = ( 1 << PB0 );
while(1)
{
USART_Transmit('C');
PORTB ^= ( 1 << PB0 );
_delay_ms(1000);
}
}
Si conecto esto a una herramienta UART / USB e inicio el monitor de terminal con una velocidad de 9600 y 8n1 obtengo mensajes vacíos. ¿Puedes decirme qué hice mal o qué debo cambiar para que funcione?