Kornhaas.net
24.08.2005, 18:51
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
#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;
}
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
#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;
}