Hi Leute
Ich bekomm einfach nicht die Serielle Schnittstelle zum laufen...
Zuerst war der MAX farbriksmässig hinüber, dann auch noch ein kleiner Verdrahtungsfehler![]()
Jetzt sollte es aber gehn, bzw bin soweit das ich die PINS auf ein ein extra Board rausgezogen habe( Funktioniert einwandfrei mit einem ATMega![]()
Hier mal der Code. Lasst euch nicht von der Sendefunktion verwirren..![]()
Sie funktioniert![]()
Genau das selbe Programm läuft auf einem ATMega8 einwandfrei...(nur andere Registernamen)Code:#include <avr/io.h> #define USART_BAUD_RATE 9600 #define USART_BAUD_SELECT (F_CPU/(USART_BAUD_RATE*16L)-1) #include <inttypes.h> #include <stdio.h> static int uart_putchar(char c, FILE *stream); static FILE mystdout = FDEV_SETUP_STREAM(uart_putchar, NULL, _FDEV_SETUP_WRITE); static int uart_putchar(char c, FILE *stream) { loop_until_bit_is_set(UCSR0A, UDRE0); UDR0 = c; return 0; } void uart_init(void) { UCSR0B = (1<<RXEN0)|(1<<TXEN0); UCSR0C = (1<<UMSEL0)|(1<<UCSZ01)|(1<<UCSZ00); UBRR0L = (unsigned char) USART_BAUD_SELECT; stdout = &mystdout; // in main() auch benoetigt printf("\nHello, world! I,m there\n"); }
Und noch ne Frage:
Warum steht im Datenblatt usw überall UART0 er hat doch eh nur einen ?!
Mfg







Zitieren

Lesezeichen