-         
Ergebnis 1 bis 2 von 2

Thema: Problem mit UART - falsche Ausgabe

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.05.2006
    Ort
    Rheinzabern
    Alter
    31
    Beiträge
    200

    Problem mit UART - falsche Ausgabe

    Anzeige

    Praxistest und DIY Projekte
    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

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    20.05.2006
    Ort
    Lippe
    Alter
    52
    Beiträge
    524
    Hallo,

    habe beim Überfliegen keinen Fehler gefunden.*
    Ich nehme mal an, die ander Seite ist ein PC. Welche Einstellungen hast du im Terminalprogramm. Kannst du die RS232-Leitung vom Controller (MAX) trennen und RXD und TXD an der Leitung kurzschließen und ein Zeichen senden? Wie sieht das Echo im Terminal aus?

    * Abgesehen davon, dass bytecount nicht definiert ist und dies auf weitern Code schließen läßt.

    Gruß

    Jens

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •