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).
Werbung
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
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.
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! \/
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
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; } }
Ich meinte mehr die Raspberry Seite.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! \/
auf Raspberry Seite hab ich per shell nur die baud rate konfiguriert also:
stty -F ttyAMA0 ispeed 9600 ospeed 9600
und dann wird schon jedes geschickte zeichen zurückgeschickt.
Lesezeichen