Re: DCF77 und RTC - neu Synchronisation klappt nicht Kategorie: Programmierung C (von Oliver - 18.01.2011 11:27) | ||
Als Antwort auf Re: DCF77 und RTC - neu Synchronisation klappt nicht von Joerg - 18.01.2011 10:01 | ||
| ||
> > > > Hallo, > > > > ich bin neu hier und möchte einige Sachen (Rollladen, Heizung, Lüftung etc) im Haus mit > > > > dem 128Pro steuern. Hab schon etwas Erfahrung mit der Station 1 gesammelt. > > > > > > > > Jetzt sitze ich am DCF77 und RTC Modul. Die erste Synchronisation klappt prima. > > > > Auch wenn zwei oder drei Anläufe benötigt werden bis das Signal gefunden wird. > > > > Wenn aber die Daten einmal gefunden wurden und ich dann z.B. die Synchronisation > > > > erneut starte â?? über â??DCF_START();â?? kommt er über den Mode 1 nicht raus. > > > > Er findet also nie ein Signal am DCF_IN. > > > > Ich habe nun die Befürchtung, dass sich der Interrupt Timer verschoben hat und nicht mehr mit > > > > den DCF Signal übereinstimmt. > > > > Ich habe schon gelesen, dass es Probleme mit dem 10ms Timer und der I2C Schnittstelle geben soll. > > > > Wobei bei der erst Synchronisation das keine Rolle spielt â?? ich lasse mir den Status auf einem > > > > I2C 4x40 LCD anzeigen. > > > > > > > > Wie kann ich den Timer auf die Flanke des DCF Signals neu triggern? > > > > > > > > Ich hoffe ich hab mich verständlich ausgedrückt. > > > > > > > > Gibt es Bastler im Allgäu? > > > > > > > > GruÃ? > > > > Oliver > > > > > > Hallo Oliver, > > > > > > suche mal in der DCF Lib nach der Zeile > > > > > > if (BIT_CNT>=22) // Start der Datenaufnahme ab Minuten > > > > > > und ändere sie auf > > > > > > if (BIT_CNT>=21) // Start der Datenaufnahme ab Minuten > > > > > > GrüÃ?e Jörg > > > > > > > > Hallo Jörg, > > > > danke für die schnelle Antwort. Ich hab es getestet bringt leider keinen Erfolg. > > > > Liegt aber auch nicht daran denn er kommt ja gar nicht in den Mode 2. > > > > Ich hab mal den Berich DCF_Plus mit folgendem Kommentar ergänzt. > > Daran sehe ich, dass er bei der ersten Synchronisation ohne > > ca. 5 bis 50 ganz selten mal 80 Versuche benötigt um i den Mode 2 zu kommen. > > Startet die DCF_Uhr nach einer erfolgreichen Synchronisation neu > > um die Uhr abzugleichen. Habe ich hier Zahlen weit über 2000 stehen! > > > > > > > > void DCF_PULS(void) > > { > > if (DCF_MODE==1) > > { > > DCF_LIMIT_CNT++; > > Msg_Text = __FUNCTION__; > > Msg_WriteText(Msg_Text); > > Msg_WriteInt(DCF_LIMIT_CNT); > > Msg_Text = " "; > > Msg_WriteText(Msg_Text); > > > > > > > > if (Port_ReadBit(DCF_IN)) SEC_CNT++; > > else SEC_CNT=0; > > > > if (SEC_CNT==5) > > { > > DCF_MODE++; // Puls gefunden > Modewechsel > > SEC_CNT=0; > > Msg_Text = __FUNCTION__; > > Msg_WriteText(Msg_Text); > > Msg_Text = " auf Mode "; > > Msg_WriteText(Msg_Text); > > Msg_WriteInt(DCF_MODE); > > Msg_Text = " --> "; > > Msg_WriteText(Msg_Text); > > } > > } > > } > > > > Lieben GruÃ? aus dem Allgäu > > Oliver > > > > Hallo Oliver, > > vielleicht verlierst Du Interrupts. > > Speicher mal den Wert MAX IRQ Count aus der Interrupt Routine ab und gebe ihn im Hauptprogramm aus. > > GrueÃ?e Joerg > Hallo Joerg, ich hab die Variable irqcnt Global gelegt. Die ist immer "1" GruÃ? Oliver | ||
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum