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; } }







Zitieren

Lesezeichen