Hallo, ich bin gerade dabei mir eine DCF77-Uhr mit LCD zu bauen. Leider bekomme ich das Bit-Signal nicht decodiert. Die Auswertung des Signals, das Finden der Startposition usw. funktioniert. Bei dem unten stehenden Quelltext-Auszug sollen die Signale von Sekunde 21-27 erfassen und anschließend auf das LCD ausgeben. Aber irgendwie funktioniert das nicht. Kann mir jemand einen Tip geben? Muss mir die funktion get_signal() etwas anderes liefern? Die Funktion get_signal() liefert mir jede Sekunde eine 1 oder 0 als int.
1 | char buffer; |
2 | unsigned char minute=0x00; |
3 | |
4 | for (int i=1; i<=7; i++) |
5 | {
|
6 | get_signal(); // sendet 1 oder 0 |
7 | |
8 | minute |= signal; // Signal in minute schreiben |
9 | minute >>= 1; // Inhalt um eine Stelle verschieben |
10 | }
|
11 | |
12 | stunde >>= 1; // 1x verschieben um auf 8bit zu kommen |
13 | |
14 | utoa( minute, buffer, 10 ); // in ascii umwandeln |
15 | lcd_string(buffer); // auf dem LCD ausgeben |