Gast
#1770352
Hallo Forum, ich habe ein Problem. Ich möchte von einem GPS-Empfänger (RS232) die Koordinaten auf das LCD-Display ausgeben. Dazu nutze ich einen AT Mega8. Das RS232-Signal vom GPS-Empfänger wandele ich mit einem MAX232 auf den TTL-Pegel vom Mega8. Laut Oszilloskop sind diese Signale auch in Ordnung (invertiert und auf TTL-Pegel gewandelt). Leider zeigt mir das Display nur irgendwelche Hyroglyphen an, nichts brauchbares. Ich vermute, dass ich da im Programm irgendwo einen Fehler habe. Unten hab ich den Quelltext angehängt. Würd mich total freuen, wenn mir jemand auf die Sprünge helfen kann. Viele Grüße Stefan #include "lcd.c" #include <avr/io.h> #include <util/delay.h> #include <stdlib.h> #include <stdarg.h> #include <avr/interrupt.h> #include <avr/eeprom.h> #include <inttypes.h> #include <stdbool.h> #include <avr/wdt.h> #define F_CPU 3686400 #define UART_BAUD_RATE 4800 void initUART(void) { UBRRL = (F_CPU/UART_BAUD_RATE/ 16L)-1; UCSRB = (1 << RXEN); } void putChar(char data) { while (!(UCSRA & 32)); UDR = data; } int main (void) { unsigned char Zeichen; initUART (); lcd_init(); DDRB=0x00; PORTB=0xff; while (1) { if (UCSRA&(1<<RXC)) { Zeichen = (UDR); lcd_on(); lcd_goto(1,1); lcd_write_s(Zeichen); } } }