Hi,
hab mir deine Libs jetzt mal angeschaut und teilweise versteh ichs auch.
Nur zum Verständniss: Du kannst dir da die einzelnen Werte aus der Union wieder rausziehen weil bei einer Union ja die einzelnen Werte übereinander auf dem selben Speicherplatz liegen. Somit ist dcf77_t.bits und die geschachtelte Struktur übereinander. Stimmt das so?
Aber leider ist mir nicht ganz klar, wie du die empfangenen Informationen in dcf77_t.bits reinschiebst.
Das hier müsste ja eine Pausenerkennung sein:
Code:
if ((duration > (PAUSE_900MS - PAUSE_DEVIATION))
&& (duration < (PAUSE_900MS + PAUSE_DEVIATION))) {
dcfbit = BIT_0;
dcfstream.bits &= ~bitstream_mask;
bitstream_mask <<= 1;
Wird eine 0 erkannt weist du dcfbit = 0b00000000 zu. (Warum? dcfbit hat doch nichts mit dcf77_t.bits zu tun)
Die nächsten zwei Zeilen mit dcfstream.bits und bitstream_mask sind mir vollkommen unklar. Woher kommen die 2 Variablen?
Was die zwei Zeilen ausführen hoff ich verstanden zu haben:
dcfstream.bits &= ~bitstream_mask;
UND - Verknüpfung von dcfstream.bits und invertiertem bitstream_mask
bitstream_mask <<= 1;
bitstream_mask um 1 nach links schieben und in bitstream_mask speichern
Danke schonmal für die Hilfe
Lesezeichen