- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 10

Thema: Uhrzeit ohne externen Uhrenquarz

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.06.2004
    Beiträge
    162

    Uhrzeit ohne externen Uhrenquarz

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo!

    Würde gerne auf meinem LCD eine Uhr betreiben, aber einen externen Uhrenquarz an XTAL kann ich bedingt durch meinen 16MHz Quarz nicht nehmen.

    Wie kann ich nun eine Uhr realisieren?

    Dezeitige Initialisierung, läuft aber logischerweise nicht:
    Code:
    Config Date = Dmy , Separator = .
    Config Clock = Soft
    Date$ = "12.04.10"
    Time$ = "10:35:00"
    Geändert von CapSob (14.04.2011 um 16:21 Uhr)

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Du schreibst nicht welchen Kontroller du verwendest, ein Mega16 z.B. hat noch TOSC Eingänge für einen Uhrenquarz.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.06.2004
    Beiträge
    162
    Sry

    atmega8 mit externen 16 MHz Quarz.
    Belegt sind ein ADC0 mit Spannungsteiler, 40*4 Display und i2c-Bus.

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Hallo,
    entweder config clock=user und die Uhr selbst programmieren oder mehr Ressourcen "verbraten" und config dcf... nehmen. Dann läuft auch eine Uhr intern, die sich so stellen lässt.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.06.2004
    Beiträge
    162
    Zitat Zitat von peterfido Beitrag anzeigen
    ...config clock=user und die Uhr selbst programmieren...
    genau das meinte ich - wie würde ich das umsetzen?

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    37
    Beiträge
    4.255
    Zitat Zitat von CapSob Beitrag anzeigen
    genau das meinte ich - wie würde ich das umsetzen?
    Du richtest einen periodischen Timer-Interrupt ein, in dem du die Zeit hochzählst...

  7. #7

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.06.2004
    Beiträge
    162
    Ja perfekt, der Post von "habe" funktioniert prächtig!

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    11.03.2010
    Beiträge
    9
    Hallo, bin grade auch an etwas ähnlichem. Leider kommt bei mir: "Beitrag nicht gefunden". Gibts den Post noch irgendwo?

    Danke schonmal

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.06.2004
    Beiträge
    162
    Hmm... kP.

    habe dir hier aber mal mein Code, der funktionierte, anhand dem Tut:

    Code:
    ' =================== CONTROLLER-KONFIG ===================
    $regfile = "m8def.dat"
    $framesize = 24
    $swstack = 8
    $hwstack = 32
    $crystal = 16000000                                         ' 16 MHz
    $baud = 9600                                                ' BAUD-Rate für RS232: 9600
    $external _soft_clock                                       ' Dieser Befehl bindet den Code der Original-Uhrenroutine ein
    
    ' =================== UHR ===================
    Config Clock = User                                         ' Teilt dem Compiler mit, daß eine eigene Uhrenroutine verwendet wird
                                                                 ' Die internen Variablen _hour, _min, _sec, _day, _month, _year werden erzeugt
    Const _sectic = 0                                           ' Keine Sectic Sub verwenden
    Config Date = Dmy , Separator = .                           ' Datum auf deutsches Format einstellen
    Config Timer1 = Timer , Prescale = 256 , Clear Timer = 1    ' Clear Timer setzt Timer1 bei Erreichen des Comparewertes auf 0 zurueck
    Const Ctc_value =(_xtal / 256) - 1                          ' Berechnen des Compare-Wertes, bei dem Timer1 zuruecksetzt
    Compare1a = Ctc_value                                       ' Comparewert setzen
    Enable Compare1a                                            ' Compare-ISR erlauben
    On Compare1a Timer1_clock_isr Nosave                        ' Definitition des Labels fuer Timer1 Compare-ISR
    Time$ = "17:15:00"                                          ' Stellen der Uhrzeit auf einen Beispielswert
    Date$ = "14.04.11"                                          ' Stellen des Datums auf einen Beispielswert
    Dim Curr_sec As Byte                                        ' Hier wird die aktuelle Sekunde gemerkt
    Curr_sec = 255                                              ' Initialisieren mit einem fuer _Sec nicht vorkommenden Wert
    
    ' =================== HAUPTSCHLEIFE ===================
    Do
    
    Loop
    
    ' =================== SUB: Timer1_Clock_ISR ===================
    Timer1_clock_isr:                                           ' Falls eigener Code eingefuegt werden soll, der vor der Uhrenroutine sekuendlich
    Pushall                                                     ' ausgefuehrt wird, so muss mit PUSHALL/POPALL die Sicherung der Register erfolgen
    
    ' #### Hier kann aehnlich wie bei "CONFIG CLOCK = soft, GOSUB = SECTIC" eigener Code eingefuegt werden ####
    
    Popall                                                      ' Ohne eigenen Code kann PUSHALL/POPALL auskommentiert werden, das spart Stack
                                                                ' und Ausfuehrungszeit
      !jmp _soft_clock                                          ' Ruft Bascom's Uhrenroutine auf
    Return                                                      ' Nur vorhanden, damit es huebscher aussieht, dieses Return wird aber nie verwendet
    
    Getdatetime:                                                ' Um Bascom's Routinen zum Stellen der Uhr, wie Time$ = ... verwenden zu koennen,
    Return                                                      ' muessen folgende Label als leere Subs vorhanden sein
    
    Settime:
    Return
    
    Setdate:
    Return
    
    End

Ähnliche Themen

  1. Atmega mit externen Quarz auch ohne programmieren?
    Von erik_wolfram im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 28.03.2010, 10:15
  2. Uhrenquarz am STK500
    Von EagleStar im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 10.03.2010, 15:53
  3. Uhrenquarz
    Von bertl100 im Forum AVR Hardwarethemen
    Antworten: 1
    Letzter Beitrag: 06.11.2005, 20:17
  4. Uhrzeit ohne DCF77 (RTC)?
    Von Björn im Forum AVR Hardwarethemen
    Antworten: 7
    Letzter Beitrag: 03.09.2005, 15:10
  5. ATmega8 mit Uhrenquarz
    Von thilo im Forum AVR Hardwarethemen
    Antworten: 5
    Letzter Beitrag: 16.02.2005, 10:01

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen