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

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