Hallo,
Ich bin gerade dabei ein kleines Programm zu schreiben welches einfach nur das über UART empfangene Byte wieder zurückschickt. Das ist mein erstes C Projekt, hab davor aber schon in ASM programmiert und versteh eig alles. Das Problem ist jetzt, wenn ich eine "1" sende, bekomm ich eine "1" zurück, hintendran aber noch 5-10 andere Zeichen, die immer anders sind und keinen Sinn ergeben. Z.B. sende ich "1" und bekomme "1MÞÞß" zurück.. was läuft da falsch?
Code:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdint.h>
#include <string.h>

#define F_CPU 16000000L
#define BAUD 9600L
#define UBRR_VAL ((F_CPU/(BAUD*16))-1)

void UART_init()
{
	UBRRH = UBRR_VAL >> 8;
    UBRRL = UBRR_VAL & 0xFF;
    UCSRB = (1<<TXEN)|(1<<RXEN)|(1<<RXCIE);
	UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
}
	
int main (void) {
	    
    DDRC = 0xFF;
	
	UART_init();	

    sei();

	bytecount=1;


	while(1)
	;
}

SIGNAL(SIG_UART_RECV)
{
    unsigned char buffer;

    buffer = UDR;

    while ( !( UCSRA & (1<<UDRE)) )
        ;
    UDR = buffer;
}
Danke, homedom