Re: DCF und RTC Kategorie: Programmierung C (von Rainer - 5.05.2009 13:55) | ||
Als Antwort auf DCF und RTC von Rainer - 4.05.2009 17:42 | ||
| ||
Moin zusammen, ich hab das Test Programm nochmal geändert, es ist jetzt zu sehen das der DCF_Mode in 3 Sekunden auf 3 geht und DCF_Parity immer mal wieder hoch zählt bis ca. 9 und dann wieder auf 0 zurückfällt. Meiner Meinung nach bedeutet das, da� ich Signale erhalte die auch ausgewertet werden können aber nie komplett. Wie gesagt andere DCF Geräte funktionieren. WAS MACH ICH FALSCH????????????? Gru� uind Danke Rainer ************************************************************************************************* byte sec, last_sec; //------------------------------------------------------------------------------ // character output void WriteTwoDigits(byte pos,byte val) { char num[3]; LCD_CursorPos(pos); // set LCD Cursor Str_WriteWord(val,10,num,0,2); LCD_WriteText(num); // output string } //------------------------------------------------------------------------------ // set display format void Display_Time(void) { // WriteTwoDigits(0,Clock_GetVal(CLOCK_HOUR)); // hour WriteTwoDigits(0,DCF_PARITY); // DCF Parity status LCD_WriteChar('-'); WriteTwoDigits(3,Clock_GetVal(CLOCK_MIN)); // minute LCD_WriteChar(':'); WriteTwoDigits(6,sec); // second WriteTwoDigits(0 + 0x40, Stunde); //DCF Stunden LCD_WriteChar('.'); WriteTwoDigits(3 + 0x40, Minute); //DCF Minuten LCD_WriteChar('-'); WriteTwoDigits(6 + 0x40, DCF_MODE); //DCF Mode } void Int_10ms(void) { if (DCF_MODE == 0) { DCF_START(); } DCF_PULS(); DCF_SYNC(); DCF_FRAME(); Irq_GetCount(INT_TIM2COMP); } void Init_DCF(void) { DCF_INIT(); DCF_START(); Irq_SetVect(INT_TIM2COMP,Int_10ms); } //------------------------------------------------------------------------------ // main program void main(void) { LCD_Init(); // init Display LCD_ClearLCD(); // clear Display LCD_CursorOff(); // turn Display Cursor off Clock_SetTime(19,20,00,00); // RTC Startzeit Clock_SetDate(21,03,09); // RTC Sartdatum Init_DCF(); // DCF initialisieren und Interuptroutine setzten last_sec= Clock_GetVal(CLOCK_SEC); while(1) // Schleife für RTC auf LCD ausgeben { sec= Clock_GetVal(CLOCK_SEC); if(sec != last_sec) Display_Time(); last_sec= sec; } } *********************************************************************************** | ||
Antwort schreiben Antworten: ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum