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

Uhrzeit mit externen Quarz realisieren Kategorie: Programmierung Basic (von k5si - 7.12.2008 10:21)
Ich nutze:
C-Control Pro Mega32, eigenes Board
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:

Re: Uhrzeit mit externen Quarz realisieren (von Manfred - 8.12.2008 15:33)