Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

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
Ich nutze:
C-Control Pro Mega128, CC-Pro 128 Application Board, Pro-Bot128
> > > > 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: