Gast
#1355493
Hallo
Hab nun meinen Atmega (2560) mit dem BTM222 Modul verbunden (UART1) und
ein kleines Programm erstellt. Die Aufgabe wäre lediglich die gesendeten
Eingaben wieder zurückzusenden. Doch irgendwie funktioniert das so
nicht... Könnt ihr mir sagen wo der Fehler liegt?
Freq = 16MHz
BTM222 Baud = 115200
#include <avr/io.h>
#include <inttypes.h>
void USARTInit(void)
{
unsigned int a= 16;
UBRR1H = a<<8;
UBRR1L = a;
UCSR1A = 0x00;
UCSR1B = (1<<RXEN1) | (1<<TXEN1);
UCSR1C = (1<<UCSZ11) | (1<<UMSEL01);
}
char USARTReadChar()
{
while(!(UCSR1A & (1<<RXC1)))
{
}
return UDR1;
}
void USARTWriteChar(char data)
{
while(!(UCSR1A & (1<<UDRE1)))
{
}
UDR1=data;
}
int main(void)
{
char data;
USARTInit();
while(1)
{
data=USARTReadChar();
USARTWriteChar(data);
}
}