PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mega2561 und uart



JazzD
10.08.2007, 13:20
Hallo,
versuche seit mehreren Tagen die UART an meinem mega2561 aufbau ans laufen zu kriegen. Hab das Kabel getauscht, mit CTS und RTS dran sowie ohne. So langsam habe ich das gefühl, dass die Software Seite einfach falsch ist. Ich benutze das board von Display3000, daher ist nur die Uart1 verfügbar. Ist der code soweit richtig:



#include <avr/io.h>

#define FOSC 8000000UL// Clock Speed
#define BAUD 19200
#define MYUBRR (FOSC/16/BAUD-1)


#if defined (__AVR_ATmega2561__)
# define USR UCSR1A
# define UCR UCSR1B
# define UDR UDR1
# define UBRR UBRR1L
# define EICR EICRB
#endif

void init_uart()
{
UCR=(1 << TXEN1);
UBRR=(FOSC / (BAUD * 16L) - 1);
}


int uart_putchar(char c)
{
if (c == '\n')
uart_putchar('\r');
loop_until_bit_is_set(USR, UDRE1);
UDR = c;
return (0);
}
int main()
{
init_uart();
fdevopen(uart_putchar,0);
while(1) {
printf("BLaaaaaaaaaaaaaaaaa\n");
}

return 0;
}


Habe das ganze jetzt schon mit mega8,32 und 128 gemacht und da war es nie so fummelig, sehr seltsam ;).