- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 19

Thema: Serielle Schnittstelle - Input Echo

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    25.03.2012
    Beiträge
    15

    Serielle Schnittstelle - Input Echo

    Hallo,

    Ich bin grad dabei mit dem Pi die serielle schnittstelle anzusprechen und habe folgendes Problem:
    Wenn ich etwas empfange, wird das Zeichen direkt zurück geschickt, was nicht unbedingt optimal ist
    hab bisher in Erfahrung gebracht, dass sich das irgendwie per stty einstellen lässt, nach man page studieren und rumprobieren hab ich es allerdings nicht hinbekommen.
    Kann mir da jemand weiterhelfen?
    Danke schon mal.
    Gruß,
    Ivo

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    35
    Beiträge
    3.501
    Blog-Einträge
    9
    Hey,

    schau mal hier:

    http://kampis-elektroecke.de/?page_id=1682

    Vielleicht hilft dir das ja weiter (funktioniert übrigens auch mit einem USB-Seriell Wandler. Der heißt dann nur ttyUSB0 oder so).
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    25.03.2012
    Beiträge
    15
    Danke für die Antwort,
    hab auf deiner Seite schonmal vorbeigeschaut aber nicht die Lösung des Problems gefunden:
    vielleicht ein bisschen genauer:
    Die Andere Seite der seriellen Schnittstelle schickt zur Bestätigung das geschickte Zeichen wieder zurück und dieses wird dann direkt wieder zurückgeschickt. Also empfängt die andere Seite (ein Roboter) das Zeichen doppelt, was bei toggle befehlen nicht so praktisch ist.

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    Beiträge
    765
    Da fehlen mir noch ein paar Infos. Worüber wird kommuniziert? USB-Seriell Wandler oder die "integrierte" ttyAMA0? Welche Sprache wird verwendet? C, sh, bash, python? Wie wird die Schnittstelle genau initialisiert?
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  5. #5
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    35
    Beiträge
    3.501
    Blog-Einträge
    9
    Genau.
    Poste mal bitte beide Programme/Abläufe zu dem ganzen.
    Weil das ist nicht das "normale" Verhalten der UART Schnittstelle vom rPi das es einfach Daten wieder zurück schickt, frei nach dem Motto "Will ich nicht haben"
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    25.03.2012
    Beiträge
    15
    Hey,
    die Geschichte passiert schon bevor ich versuche zu empfangen.
    Sobald ttyAMA0 auf die korrekte Baudrate eingestellt ist werden empfangene Zeichen zurückgeschickt.
    Hier die Test Datei auf dem Atmega 32, die wenn ich sie starte fröhlich blinkt.
    Code:
    atmega 32
    
    
    
    
    usart initialisierung
    
            UCSRC |= (1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1);        // Asynchron, 8N1
            UBRRH=(uint8_t)(UART_BAUD_CALC>>8);                        // Baudrate wählen
            UBRRL=(uint8_t)UART_BAUD_CALC;
    
            UCSRB |= (1 << TXEN);        // UART TX (senden) einschalten
            UCSRB |= (1 << RXEN);        // UART RX (empfangen) einschalten
            
    
    usart funktionen:
    
    void usart_putc(unsigned char c) // Ein Zeichen senden
    {
        while(!(UCSRA & (1 << UDRE)));        // warte, bis UDR bereit 
        UDR = c;                                // sende Zeichen 
    }
    
    
    int16_t usart_getc_nowait (void)
    {
        // Liefert das empfangene Zeichen, falls etwas empfangen wurde; -1 sonst 
        return (UCSRA & (1 << RXC)) ? (int) UDR : -1;
    }
    
    
    
    
    testprogramm:
    
    while(1)
            {
             empfangen=usart_getc_nowait();
              if(empfangen=='B')
             {
             if (!z_led_links)
                    {
                    led_links(gelb);
                    z_led_links=1;
                                                            
                    }
                    else
                    {                        
                    led_links(aus);
                    z_led_links=0;                                                        
                    }                                
            }
            
            if(kontroll_zaehler>=50) // Sekunde
            { 
              led_rechts(gruen);
             usart_putc ('B');
            
             kontroll_zaehler=0;
            }
       }

Ähnliche Themen

  1. serielle schnittstelle
    Von Roboman93 im Forum Robby RP6
    Antworten: 11
    Letzter Beitrag: 15.04.2008, 18:48
  2. Serielle Schnittstelle
    Von pacer_one im Forum AVR Hardwarethemen
    Antworten: 6
    Letzter Beitrag: 08.01.2008, 17:33
  3. Serielle Schnittstelle
    Von suggle im Forum Sensoren / Sensorik
    Antworten: 4
    Letzter Beitrag: 24.01.2006, 13:34
  4. [ERLEDIGT] serielle Schnittstelle
    Von Devil Ray im Forum C - Programmierung (GCC u.a.)
    Antworten: 13
    Letzter Beitrag: 04.10.2004, 12:26
  5. 2x ATMEGA 1x serielle Schnittstelle?
    Von boeseTURBO-CT im Forum AVR Hardwarethemen
    Antworten: 11
    Letzter Beitrag: 16.06.2004, 11:35

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress