Habe folgendes gemacht:
Habe den TimeOut beobachtet und es gab eigentlich keine Problem! Blieb auf 0.
Habe den Counter dann auch 10 begrenzt. Wenn es dann nicht geht ist es egal.
Ich setze dann den TimeOut auf 0 beim verlassen.
Zeit auf dem Rainbow anzeigen nur wenn die DCF77 nicht läuft.
Ich glaube das Problem was ich damit habe könnte auch an Störungen des Empfangs liegen.
Mache ich den Rainbow Stromlos empfange ich halt besser. Könnte doch sein oder (liegen ja direkt nebeneinander)
Ich habe auch die Lib ein kleines bisschen verändert damit ich besser Empfangsfehler erkennen kann.
myDCF.valid = 0 wenn gerade ausgewertet wird
myDCF.valid = -1 wenn ein Empfangsfehler kommt
myDCF.valid = 1 wenn das Signal richtig ausgewertet wurde.
Dadurch habe ich die Möglichkeit nach 20 Fehlern einfach abzubrechen.
Desweiteren Prüfe ich ob die Daten die vom DCF kommen auch im Bereich des Möglichen liegen!
Stunden < 25, Minuten < 60....
Da mir aufgefallen ist das es Möglich ist von der DCF auch ganz Falsche Werte als Richtig zurück zu bekommen!
48:78:55 34.55.2098 so was in der Art.
Temperaturmessung eingebaut mit einem LM35.
Funktioniert prima nachdem ich herausgefunden habe das ich den Wert zweimal lesen muss mit einem delay drinnen.
Sonst schwankt der extrem.
Was mir noch nicht gefällt ist das wenn gerade zwei "Zeiger" auf die selbe Stelle zeigen wird im moment nur die Sekunde als blau dargestellt.
Ich hätte gerne eine Mischfarbe. Da weiß ich noch nicht genau wie ich das am besten löse.
// ############################### Sekundentakt ##############################
void rainbowSecond(){
sendCMD(0x10, CMD_CLEAR_PAPER);
sendCMD(0x10, CMD_SET_INK, 0xF,0,0);
sendCMD(0x10, CMD_DRAW_PIXEL,toByte(matrixX[hour()]),toByte(matrixY[hour()]));
sendCMD(0x10, CMD_SET_INK, 0,0xF,0);
sendCMD(0x10, CMD_DRAW_PIXEL,toByte(matrixX[minute()]),toByte(matrixY[minute()]));
sendCMD(0x10, CMD_SET_INK, 0,0,0xF);
sendCMD(0x10, CMD_DRAW_PIXEL,toByte(matrixX[second()]),toByte(matrixY[second()]));
sendCMD(0x10, CMD_SWAP_BUF);
}
Problem ist auch das manchmal (nicht immer) die Sekunden auf dem Rainbow nur alle zwei Sekunden aktualisiert werden.
Die Anzeige stimmt dann nur fehlt eben immer eine Sekunde (wird übersprungen).
Mit den Variablen ist mir bewusst. Bin da nicht immer sicher was ich nehmen muss. Da ist int immer schön einfach.
Werde ich aber mal versuchen anzupassen.
Code habe ich wieder angehängt für die die es interessiert.
Gruß
MueThoS