www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 32,768 kHz RTC an Mega161


Autor: Jürgen Motsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Gemeinde,

ich programmiere gerade eine DCF-77 Uhr mit Graphic-LCD, welche mit 8 
MHz Systemtakt läuft. Da aus dieser Zeitbasis kein genauer Sekundentakt 
abzuleiten ist, habe ich probiert, den Timer2 mit einem 32,768 kHz Quarz 
zu takten. Leider ist es mir nicht gelungen, das System zum Schwingen zu 
bewegen, der TOV2 wird also nie ausgelöst. Da ich nicht weiss, ob es am 
Quarz liegt oder an der Initialisierung des asynchronen Modus, hier 
meine Fragen :
1. wird der Quarz ohne Kondensatoren angeschlossen?
2. hat jemand diese RTC zum Laufen bekommen (bitte ASM-Routine)?

vielen Dank in voraus

Jürgen

Autor: BAB (Kai K.) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zu1:
der quarz braucht auch zwei kondensatoren siehe datenblatt. dort werden 
meist vom hersteller die empfohlenen werte angegeben.
bei mir sind das 12pF.

Gruss,

BAB

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum lässt sich aus 8 MHz kein genauer Sekundentakt ableiten? Prescaler 
256, Compare-Register 31250, und schon hast du deinen 
Sekunden-Interrupt.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Korrektur: 31249

Autor: Jürgen Motsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun, das mit den C's werde ich probieren, selbst in den Appnotes von 
Atmel sind allerdings keine Kondensatoren zu sehen.
Da ich den Timer1 für die DCF-Pulsaufbereitung brauche, kann ich diesen 
nicht nehmen (Input Capture Function) und die anderen sind ja nur 8 bit 
breit.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst auch den 8 Bit-Timer mit Prescaler 2 nehmen und bei jedem 
Überlauf eine 16 Bit-Variable hochzählen. Wenn der Wert 15625 erreicht 
hat ist die Sekunde um und die Variable wird wieder auf 0 gesetzt.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jürgen,

warum kannst Du T1 nicht nehmen, der läuft doch weiter ?
Die Input Capture Function beeinflußt ihn in keinster Weise.

Abgesehen davon würde ich die Input Capture Function nicht nehmen, sie 
macht das DCF77-Signal nur unnötig störempfindlich.
Schon eine kurze Störnadel von 125ns (bei 8MHZ) löst ja die Input 
Capture Function aus.

Man muß doch nur die 0- von den 1-Bits unterscheiden, eine supergenaue 
Messung der Impulslänge ist daher unnötig.

In meinem Beispiel in der Codesammlung mache ich das alles nur mit T0.


Peter

Autor: Jürgen Motsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank Andreas,

das werde ich ausprobieren.

Autor: Jürgen Motsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Peter
Da ich den Noise Canceler aktiviert habe, sind Störimpulse nicht sind 
kritisch, ausserdem liegt der ICP beim Mega161 auf dem PortE und damit 
verschwende ich kein komplettes 8bit Port. Ich werde mir die Sache aber 
trotzdem ansehen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.