Hi...
Bin gerade dabei mithilfe des RNControl1.4 das empfangene DCF-Signal einer FUM-DCF von HKW Elektronik aus einem LCD auszugeben. Die Ansteuerung des LCD´s funktioniert einwandfrei. Wenn ich aber versuche über den USART das Zeitsignal einzulesen sind auf dem LCD nur zwei schwarze Baken zu sehn.
Das Display ist ein 16x4, wie gesagt mit nem anderen Programm funzt die Anzeige perfekt.
Die USART Einstellungen sollten wie folgt sein:
300 Baud
7 Datenbits
gerade Parität
2 Stoppbits
Hier mal der Teil des Codes wo ich versuche das Signal einzulesen:
Wird wohl an dem String liegen den das Modul rausgibt...Code:#include <avr/io.h> #include <inttypes.h> #include "lcd.h" // Sollte schon im Makefile definiert sein. // In dem Fall hier einfach löschen. //#define F_CPU 16000000UL #define BAUD 300UL #define UBRR_BAUD ((F_CPU/(16UL*BAUD))-1) // USART initialisieren void uart_init(void) { // Baudrate einstellen (Normaler Modus) UBRRH = (uint8_t) (UBRR_BAUD>>8); UBRRL = (uint8_t) (UBRR_BAUD & 0x0ff); // Aktivieren von receiver UCSRB = (1<<RXEN); // Einstellen des Datenformats: UCSRC = (1<<URSEL)|(1<<UPM1)|(1<<USBS)|(1<<UCSZ1)|(1<<UCSZ0); } int main(void) { uint16_t buffer; // USART initialisieren uart_init(); while (1) { // Warten bis Daten empfangen wurden while ( !(UCSRA & (1<<RXC)) ) // Empfangsregister auslesen buffer = UDR; while(1) { //lcd initialisieren lcd_init(); //Buffer auf dem lcd ausfegeb sprintf( buffer,"Time: %02d,UDR"); set_cursor(1,1); lcd_string(UDR); } } }
Würde mich über Tipps und Hinweise freuen
Gruss Mnemonic







Zitieren

Lesezeichen