Hallo
also ich hab da wieder mal ein kleines Problem. Bis jetzt habe ich einen ATmega 16 eingesetzt, ab jetzt verwende ich aber einen ATmega128. Bei diesem will ich nun die UART0 Schnittstelle benutzen. Zum Test habe ich einfach ein kleines Text-file hergenommen und die UART init wie folgt geändert. Nur leider läuft das Programm nicht
Frequenz (intern 8Mhz)
Baud 9200
Code:
#include <inttypes.h>
#include <stdio.h>
#include <avr/io.h>
#define USART_BAUD_SELECT 51
char cText[] = "Hello, world !\r\n";
//-----------------------------------------------------
void _writeChar(char c)
{
while (!(UCSR0A & (1<<UDRE0))) {}
UDR0 = c;
}
//-----------------------------------------------------
void _writeString(unsigned char *string)
{
while ( *string)
_writeChar(*string++);
}
//-----------------------------------------------------
int main(void)
{
DDRF=0xff;
PORTF |= (1<<PF1);
PORTF &= ~(1<<PF2);
UCSR0B = (1<<TXEN0);
UCSR0C = (1<<UMSEL0)|(1<<UCSZ01)|(1<<UCSZ00); //Asynchron 8N1
UBRR0L = (unsigned char) USART_BAUD_SELECT;
_writeString(cText);
return 0;
}
Lesezeichen