- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 2 von 2

Thema: Problem mit UART - falsche Ausgabe

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.05.2006
    Ort
    Rheinzabern
    Alter
    33
    Beiträge
    200

    Problem mit UART - falsche Ausgabe

    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
    55
    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
  •  

Labornetzteil AliExpress