mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Uhr programmieren AT90S8535


Autor: Christian Dresel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi

wie programmier ich am einfachsten eine uhr? hab gedacht mit 3
Variablen (sek min std) und pro sekunde die sek eins hochzählen bei
mehr als 59 dann eben min um eins erhöhen usw.

nur wie bekomm ich einen 1sekunden takt? hab gedacht mit nem quarz so
um ca. 1khz den am interuppt eingang anlegen dann ne zählervariable und
wenn die bei 1000 ist sek um eins erhöhen.

was meint ihr bessere ideen oder ist die idee schon gut?

mfg

Christian

Autor: Oliver Kleinert (oliver-tmp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal in die Codesammlung da gibt es eine gutes Beispiel.

Autor: akw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einfach nen Timer nehmen, je nach Quarz mit Prescaler und Preset auf
eine Sekunde stellen und beim Overflow die Sekundenvariable um eins
erhöhen...

Autor: akw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso noch was: ist net so übel genau, wenns wirklich genau werden soll
DCF77 Empfänger nehmen!

Autor: Christian Dresel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi

mir reicht es auf 10 minuten /jahr genau locker.

DCF77 ist denk ich mal zu kompliziert.

@akw

meinst du ohne extra quarz einfach mit nem timer und das klappt und
wird rel. genau? wie genau wird es denn in etwa?

mfg

chrisi01

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Christian
Ich habe hier eine Uhr mit ATTINY2313 und 4Mhz-Quarz dran. Die läuft
jetzt ein halbes Jahr und geht 3 Sekunden nach. Ich denke, daß diese
Genauigkeit reicht.

MfG Paul

Autor: Christian Dresel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi

aber dann muss ich ja jede flanke zählen bis 4 millionen und bei nen
8mhz controller ist die halbe leistung des controller schon
"verbraten" oder gibts da nen schaltungstechnischen trick?

ich mein der controller muss ja bei jeden 2 takt dann in die
interuptfunktion

reichen würde die genauigkeit LOCKER

mfg

Christian

Autor: akw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum Flanken zählen? Du hast deinen Controller mit 4 Mhz. Dann hast du
nen Timer der hochzählt. Der Quarz kommt nicht an nen Interupt. Du hast
ja beim Timer nem Prescaler, dein 16 Bit Timer geht nur bis zu ner
gewissen Zahl und dann stellst du den Timer per Preset schon so hoch,
dass es bis zum Overflow genau ne Sekunde dauert und zählst dann hoch.

Hoffe das war verständlich ^^

gruß

Autor: akw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier noch was von mir:

On Timer1 Sekunde_plus
Config Timer1 = Timer, Prescale = 64
Enable Timer1
Enable Interrupts
Timer1 = 49910

Zuerst Prescaler auf 64 heißt bei nem Takt von 1 Mhz 1562,5.
Dann stellt man den Timer auf 49910 ein, dann dauerts bis zum Overflow
ungefähr ne Sekunde.

Hoffe du weißt was ich mein!

gruß

Autor: Christian Dresel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi

ich denke das wärs wenn ich schonmal mit timer gearbeitet hätte ;)

ich hab mitlerweile so ziemlich alles verwendet aber timer hatten wir
noch nicht in der schule...

vllt. kannst du es nochmal für dummis erklären die zwar von uC Ahnung
haben aber och nie mit timer gearbeitet haben :)

notfalls wart ich noch 2 Wochen und dann werd ich das schon noch
erfahren in der Schule :)

mfg

Christian

Autor: Christian Dresel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
achja mein atmel läuft mit 8mhz

Autor: akw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also hier ist ein Link, dort ist alles sehr gut erklärt wie ein Timer
funktioniert und weiter unten auch wie man nen Sekundentakt erzeugt...
Ist zwar in Bascom aber übersetzen wirst du ja hinbekommen wenn du mal
weißt wies geht!

http://www.roboternetz.de/wissen/index.php/Bascom_und_Timer

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.