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 
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");
}
Genau das selbe Programm läuft auf einem ATMega8 einwandfrei...(nur andere Registernamen)
Und noch ne Frage:
Warum steht im Datenblatt usw überall UART0 er hat doch eh nur einen ?!
Mfg
Lesezeichen