Re: Uhrzeit mit externen Quarz realisieren Kategorie: Programmierung Basic (von Manfred - 8.12.2008 15:33) | ||
Als Antwort auf Uhrzeit mit externen Quarz realisieren von k5si - 7.12.2008 10:21 | ||
| ||
Hallo, ich habe dafür den Uhrbaustein DS1307 benutzt, der Batterie-gepuffert auch bei Abschaltung von CCpro weiterläuft. Der DS1307 wird über die I2C Schnittstelle bedient. mfg Manfred > Hallo, > > Ich habe hier einen Quellcode, bei dem ich die aktuelle > Uhrzeit per RS232 Schnittstelle übertragen soll. Da ich > mich bei C Control noch nicht gut auskenne, brauche ich eure > hilfe. > > Das Problem was ich habe ist, dass die Uhrzeit nicht genau > genug läuft (interner Quarz bei Prescaler rundungsfehler. > Deshalb habe ich mir gedacht, einen externen Uhrenquarz zu > verwenden, damit die Uhrzeit genau genug ist. > > Da das Problem so schnell wie möglich behoben werden soll, > wäre ich froh wenn mir einer sagen könnte, wo und wie ich > den Quellcode ändern muss, damit ich einen externen Quarz > verwenden kann. > > Den Code habe ich nicht selber gemacht, muss von anderen > einen das Projekt fertig machen. Sollte vorerst nur eine > Notlösung werden, bevor ich das ganze Projekt nochmals > neu schreibe. > > Danke im Vorraus für eine schnelle und nützliche Antwort. > > > > > > Dim Text1(80) As Char ' Array deklariert > Dim Text2(80) As Char ' Array deklariert > > > Dim Zeile1(12), Zeile2(12) As Char ' globale Variablendeklaration > > Dim t,m,c,d,p1,p2,i As Integer > Dim A1,A2,wert1,wert2 As Word > > Sub Write() > LCD_CursorPos(0) ' LCD Cursor positionieren > LCD_WriteText(Zeile1) ' String Zeile1 ausgeben > LCD_CursorPos(&H40) ' LCD Cursor auf 2.Zeile positionieren > LCD_WriteText(Zeile2) ' String Zeile2 ausgeben > End Sub > > Sub wwait() > For p1=0 To 100 > For p2=0 To 1000 > Next > Next > End Sub > > Sub wwaitk() > For p1=0 To 500 > For p2=0 To 1000 > Next > Next > End Sub > > '------------------------------------------------------------------------------ > ' Festlegung von Startzeit und Startdatum > ' > Sub Time_Init() > ' cnt1=0 ' cnt1 zählt im 10ms Takt > ' Zeitbasis zu kompensieren (16 MHz) > Sekunde=0 ' RTC Startzeit: 12:00:00 > Minute=0 > Stunde=12 > Tag=1 ' RTC Startdatum: 01.01.2005 > Monat=1 > Jahr=5 > End Sub > > '------------------------------------------------------------------------------ > > > > ' Hauptprogramm > ' > Sub main() > > '########################################### > > Port_DataDirBit(PORT_LED1,PORT_OUT) > Port_WriteBit(PORT_LED1,PORT_OFF) > > wwait() > Port_WriteBit(PORT_LED1,PORT_ON) > wwait() > Port_WriteBit(PORT_LED1,PORT_OFF) > wwait() > Port_WriteBit(PORT_LED1,PORT_ON) > wwait() > Port_WriteBit(PORT_LED1,PORT_OFF) > wwait() > Port_WriteBit(PORT_LED1,PORT_ON) > wwait() > Port_WriteBit(PORT_LED1,PORT_OFF) > wwait() > > '########################################### > > Lab rs232 > > '------------------------------------ > > wwaitk() > > Serial_Init(0,SR_8BIT Or SR_2STOP Or SR_NO_PAR,SR_BD115200) > > 'xxxxxxxxxxxxxxxxxxxxxxx > 'start > Serial_Write(0,0) > Serial_Write(0,0) > Serial_Write(0,0) > Serial_Write(0,0) > Serial_Write(0,0) > Serial_Write(0,1) > Serial_Write(0,70) > Serial_Write(0,70) > Serial_Write(0,48) > Serial_Write(0,48) > Serial_Write(0,2) > Serial_Write(0,87) > Serial_Write(0,65) > 'jahr > Serial_Write(0,50) > Serial_Write(0,48) > Serial_Write(0,48) > Serial_Write(0,55) > 'monat > Serial_Write(0,48) > Serial_Write(0,49) > 'tag > Serial_Write(0,50) > Serial_Write(0,50) > 'uhrzeit > Serial_Write(0,50) > Serial_Write(0,53) > Serial_Write(0,49) > Serial_Write(0,51) > Serial_Write(0,53) > Serial_Write(0,52) > 'wochentag > Serial_Write(0,50) > 'ende > Serial_Write(0,3) > Serial_Write(0,70) > Serial_Write(0,70) > Serial_Write(0,70) > Serial_Write(0,70) > Serial_Write(0,4) > > wwaitk() > '-------------------------------------------------------------- > > '------------------------------------ > ' > wwaitk() > > Serial_Init(0,SR_8BIT Or SR_2STOP Or SR_NO_PAR,SR_BD115200) > > 'xxxxxxxxxxxxxxxxxxxxxxx > 'start > Serial_Write(0,0) > Serial_Write(0,0) > Serial_Write(0,0) > Serial_Write(0,0) > Serial_Write(0,0) > Serial_Write(0,1) > Serial_Write(0,70) > Serial_Write(0,70) > Serial_Write(0,48) > Serial_Write(0,48) > Serial_Write(0,2) > Serial_Write(0,87) > Serial_Write(0,65) > 'jahr > Serial_Write(0,50) > Serial_Write(0,48) > Serial_Write(0,48) > Serial_Write(0,56) > 'monat > Serial_Write(0,48) > Serial_Write(0,49) > 'tag > Serial_Write(0,50) > Serial_Write(0,50) > 'uhrzeit > Serial_Write(0,50) > Serial_Write(0,53) > Serial_Write(0,49) > Serial_Write(0,51) > Serial_Write(0,53) > Serial_Write(0,52) > 'wochentag > Serial_Write(0,50) > 'ende > Serial_Write(0,3) > Serial_Write(0,70) > Serial_Write(0,70) > Serial_Write(0,70) > Serial_Write(0,70) > Serial_Write(0,4) > > wwaitk() > > Goto rs232 > > > '-------------------------------------------------------------- > > > 'Lab ende > > End Sub | ||
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum