DCF77 über Digitalpin?

MaFu:
Ich habe mich heute mal an deine Bibliothek drangesetzt.

    /**
    * Should be called every 15 ms in order to sample the DCF signal.
    * Returns the current state of the signal: 1 for HIGH, 0 for LOW.
    */
    bool readTime(unsigned char retries);
    int scanSignal(void);

Wie ist das zu Verstehen? Muss ich wirklich alle 15ms einmal die Funktion aufrufen?

Kann man das irgendwie in der Bibliothek automatisieren? Vielleicht mit einem Timer Interrupt?

Und gibt es irgendeine Möglichkeit, zu prüfen, ob erfolgreich synchronisiert wurde?

Hintergrund ist, dass ich noch ein DS1307 RTC-Modul am Laufen habe, was die Uhrzeit angibt. Da soll natürlich nur reingeschrieben werden, wenn die Synchronisation erfolgreich war.

Und dann sind mir noch ein Paar Dinge aufgefallen:

struct DCF77Buffer
{
  unsigned long long prefix     :15 ;
  unsigned long long Antenna    :1  ;   // wenn Bit gesetzt wird Reserveantenne benutzt
  unsigned long long DSTChange  :1  ;   // Bit wird eine Stunde vor Zeitumstellung gesetzt
  unsigned long long DST        :2  ;   // Sommer-/Winterzeit
  unsigned long long LeapSec    :1  ;   // Ank?ndigung einer bevorstehenden Schaltsekunde
  unsigned long long Start      :1  ;
  unsigned long long Min        :7  ;   // 7 Bits für die Minuten
  unsigned long long P1         :1  ;   // Parity Minuten
  unsigned long long Hour       :6  ;   // 6 Bits für die Stunden
  unsigned long long P2         :1  ;   // Parity Stunden
  unsigned long long Day        :6  ;   // 6 Bits für den Tag
  unsigned long long Weekday    :3  ;   // 3 Bits für den Wochentag
  unsigned long long Month      :5  ;   // 3 Bits für den Monat
  unsigned long long Year       :8  ;   // 8 Bits für das Jahr **eine 5 für das Jahr 2005**
  unsigned long long P3         :1  ;   // Parity von P2
};
struct DCF77Parity
{
   unsigned char parity_flag    :1;
   unsigned char parity_min     :1;
   unsigned char parity_hour    :1;
   unsigned char parity_date    :1;
};

Was bedeuten die Zahlen hinterm Doppelpunkt? Kann ich annehmen, dass damit die einzelnen Bits belegt werden? Gibt es zu dieser Syntax einen Namen? Sowas habe ich nämlich noch nie gesehen...
Ein long long hat 64 Bit, richtig?