MaN
01.09.2005, 13:20
Hi,
Hab das myAVR Board.
Mit C Schaffe ich es aber einfach nicht mit dem UART umzugehen.
Mit Bascom geht das ohne Probleme.
Folgenen Code benutze ich (aus der Roboternetz wiki)
#include <inttypes.h>
#include <stdio.h>
#include <avr/io.h>
#define F_CPU 3686400
#define USART_BAUD_RATE 9600
#define USART_BAUD_SELECT (F_CPU/(USART_BAUD_RATE*16)-1)
char cText[] = "Hello, world !\r\n";
//-----------------------------------------------------
void _writeChar(char c)
{
while (!(UCSRA & (1<<UDRE))) {}
UDR = c;
}
//-----------------------------------------------------
void _writeString(unsigned char *string)
{
while ( *string)
_writeChar(*string++);
}
//-----------------------------------------------------
void main()
{
UCSRB |= (1<<TXEN);
UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
UBRRL = (unsigned char) USART_BAUD_SELECT;
_writeString(cText);
}
im Terminal bekomm ich aber das hier: (obere 2 mit Bascom unteres mit C)
http://mitglied.lycos.de/silentshop/PC/sonstiges/Terminal-c.JPG
mit Bascom hab ich es auch so wie in der wiki gemacht.
Was mach ich denn jetzt falsch???
Hab das myAVR Board.
Mit C Schaffe ich es aber einfach nicht mit dem UART umzugehen.
Mit Bascom geht das ohne Probleme.
Folgenen Code benutze ich (aus der Roboternetz wiki)
#include <inttypes.h>
#include <stdio.h>
#include <avr/io.h>
#define F_CPU 3686400
#define USART_BAUD_RATE 9600
#define USART_BAUD_SELECT (F_CPU/(USART_BAUD_RATE*16)-1)
char cText[] = "Hello, world !\r\n";
//-----------------------------------------------------
void _writeChar(char c)
{
while (!(UCSRA & (1<<UDRE))) {}
UDR = c;
}
//-----------------------------------------------------
void _writeString(unsigned char *string)
{
while ( *string)
_writeChar(*string++);
}
//-----------------------------------------------------
void main()
{
UCSRB |= (1<<TXEN);
UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
UBRRL = (unsigned char) USART_BAUD_SELECT;
_writeString(cText);
}
im Terminal bekomm ich aber das hier: (obere 2 mit Bascom unteres mit C)
http://mitglied.lycos.de/silentshop/PC/sonstiges/Terminal-c.JPG
mit Bascom hab ich es auch so wie in der wiki gemacht.
Was mach ich denn jetzt falsch???