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?
Danke, homedomCode:#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; }







Zitieren

Lesezeichen