Grund kann der Max232 sein wenn der zur Ausgabe von Debug Meldungen angeschlossen ist. Ein weiterer Grund kann die PWM für die Farben sein, daher ist es ratsam eine Zeit einzustellen in der die Uhr aus ist.
user.h
#define USEREEPROMPARAMS_DEFAULT { \ /* .irAddress = */ USER_ADDRESS_DEFAULT, \ /* .irCommandCodes = */ USER_COMMANDCODES_DEFAULTS, \ /* .colorPresets = */ USER_COLORPRESETS_DEFAULTS, \ /* curColorProfile = */ 0, \ /* .autoOffTimes = */ USER_ON_OFF_TIME_DEFAULTS, \ /* .pulseUpdateInterval = */ USER_PULSE_CHANGE_INT_10ms, \ /* .hueChangeIntervall = */ USER_HUE_CHANGE_INT_100ms, \ /* .mode = */ MS_normalMode \ }
ersetzen durch
#define USEREEPROMPARAMS_DEFAULT { \ /* .irAddress = */ USER_ADDRESS_DEFAULT, \ /* .irCommandCodes = */ USER_COMMANDCODES_DEFAULTS, \ /* .colorPresets = */ USER_COLORPRESETS_DEFAULTS, \ /* curColorProfile = */ 0, \ /* .autoOffTimes = */ USER_ON_OFF_TIME_DEFAULTS, \ /* .pulseUpdateInterval = */ USER_PULSE_CHANGE_INT_10ms, \ /* .hueChangeIntervall = */ USER_HUE_CHANGE_INT_100ms, \ /* .mode = */ MS_hueMode \ }
user.h
#define USER_ON_OFF_TIME_DEFAULTS \ { /* [0] = off = */ USER_DEFAULT_TIME, \ /* [1] = on = */ USER_DEFAULT_TIME \ }
ersetzen durch
#define USER_OFF_TIME {1,0} //01:00 Uhr #define USER_ON_TIME {4,0} //04:00 Uhr #define USER_ON_OFF_TIME_DEFAULTS \ { /* [0] = off = */ USER_OFF_TIME, \ /* [1] = on = */ USER_ON_TIME \ }
geht nur mit Änderung aus dem Absatz vorher, und macht auch nur Sinn zu Anfang, weil mit der Änderung der Sinn der RTC ausgehebelt wird (Weiterlaufen bei Stromausfall).
main.c
static DATETIME datetime;
ersetzen durch
static DATETIME datetime; //init Zeit anlegen static DATETIME init; init.hh=1; init.mm=0;
main.c
user_init();
esetzen durch
user_init(); //init Zeit zur RTC schreiben //durch AUS Zeit 1 Uhr geht dann gleich die Uhr aus um DCF zu syncen i2c_rtc_write (&init);
Um eine Anzeige zu haben ob der DCF Empfang erfolgreich war, hab ich eine Änderung eingepflegt die eine zusätzlich SYNC LED ansteuert. Dazu wird GPO2 genutzt.
Die größten Änderunge sind in einer neuen/geänderten user.huser.c (Achtung Name geändert!).
Zusätzlich noch in der main.c
user_setNewTime (&datetime); }
ersetzen durch
user_setNewTime (&datetime); user_sync_led_off(); } if(!datetime.hh && !datetime.mm) user_sync_led_on();
Die Uhr zeigt normalerweise „zehn vor halb …“ an, ich sage aber eher „zwanzig nach ..“ um die Uhr dahingehend zu ändern, sind folgende Änderungen nötig.
disp_wc_ger3.c
static const uint8_t s_minData[TM_COUNT][11] = {...
dort den zweiten Eintrag mit dem ersten tauschen.
und dann noch an der Stelle
static const uint8_t s_hourIncrement[TM_COUNT] = { 4, /* zehn vor halb */ 5, /* fünf vor halb */ 3, /* viertel */ };
auch die ersten beiden Einträge tauschen (also die 4 und die 5).
# if (AMBILIGHT_PRESENT == 1) USER_AMBILIGHT_DDR |= (1 << USER_AMBILIGHT_BIT); # endif
ersetzen durch
# if (AMBILIGHT_PRESENT == 1) USER_AMBILIGHT_DDR |= (1 << USER_AMBILIGHT_BIT); USER_AMBILIGHT_PORT |= (1<< USER_AMBILIGHT_BIT); # endif
Um die Wordclock im Dunkeln auch dunkel zu machen, gibt es die Möglichkeit per LDR die Helligkeit zu steuern. Das geht aber Firmware 0.11 automatisch. Nur der LDR muss noch eingelötet werden. Der guckt bei mir genau über die Frontplatte rüber so das kein Licht von den LEDS auf den LDR fällt (siehe dazu in der Gallerie oben das letzte Bild).