PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Unter Verwendung eines Timers eine Uhr erstellen welche Sekunden, Minuten und Stunden



latrellvie
29.11.2013, 20:53
Hallo liebe Community !!!
Ich soll für ein STM32f4 unteranderem folgende Aufgabe zum Laufen bringen: Unter Verwendung eines Timers eine Uhr erstellen welche Sekunden, Minuten und Stunden anzeigt.
Wie stell ich das an ich hab die Timer durchgelesen. Man kann sie zwar synchronisieren aber anscheinenend nur mit Pulsen . Gibt es eine Möglichkeit auch mit zbsp ganzen Zahlen zu synchronisiere, sprich wenn Timer 1 von 0-59 gezählt hat --> trigger Timer 2 , wenn Timer 2 von 0-59 --> trigger Timer 3 , Timmer 3 von 0-23.

Bin schon auf Antworten gespannt... und DANKE VIELMALS !!!!

PICture
29.11.2013, 21:32
Hallo!

Für eine Uhr braucht man nur einen Timer der mit Sekundentakt Impulse für aus Register aufgebeuten Zähler generiert. Den Aufbau einer dezimaler Uhr habe ich skizziert:

Sek Min Stunden

.----. Ü .----. Ü .----. Ü Ü = Überlauf
Sekundentakt -->|0-59|-->|0-59|-->|0-23|-->
'----' '----' '----'

(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)
Der Überlauf aus dem Stundenzähler kann weiter für eine Datumerzeugung ausgenutzt werden.

seite5
30.11.2013, 13:28
hi,
1 Timer, 1 Sekunde
Wenn das dein Timerinterrupt ist:
sekunde++;
if(sekunde>59)
{
minute++
sekunde=0;
if(minute>59)
{
stunde++ usw.
mfg
Achim

latrellvie
01.12.2013, 22:57
Danke Leute so circa habe ich mir das eh vorgestellt bei Verwendung von nur einem Timer. Aber wenn ich eine genau besser genauere Zeitausgabe haben will bräucht ich doch für sek, min und stunden jeweils eigenen Timer ------- weil bei einem Timer der die Sekunden ließt und dann aufgrund 60sek = 1 min und 60 min = 1 stunde rechnet werden ja taktschritte für das berechnen von min und stunde verbraucht ( wahrscheinlich im vernachlässigbar kleinen mikro oder nanosekunden Bereich )
Stimmt doch oder ?

Danke für euer bisherigen Antworten !!!

PICture
01.12.2013, 23:50
------- weil bei einem Timer der die Sekunden ließt und dann aufgrund 60sek = 1 min und 60 min = 1 stunde rechnet werden ja taktschritte für das berechnen von min und stunde verbraucht ( wahrscheinlich im vernachlässigbar kleinen mikro oder nanosekunden Bereich )
Stimmt doch oder ?

Ja, aber die Zähler rechnen nix nur asynchronisch sein Zustand ändern. Wenn es ganz genau seien sollte, müsste man es rein hardwaremässig mit synchronischen Zähler realisieren, wobei alle Zähler bei gleicher Flanke sein Zustand ändern. Ob es softwaremässig möglich ist, weiß ich leider nicht. ;)

Besserwessi
02.12.2013, 00:18
Die Zeit die Nötig ist die Minuten und Stunden zu berechnen stört nur sehr wenig. In der Zeit ist der µC im Interrupt des Timers beschäftigt und führt sowieso keinen anderen Code aus, außer ggf. einen anderen Interrupt mit höherer Priorität. Eine kleine Unsicherheit ergibt sich ggf. durch die nicht immer ganz konstante Verzögerung bis der Interrupt ausgelöst wird. Das sind aber eher Zeiten im Bereich µs, selten (bei längeren Interrupts) mehr.

Ein extra Timer für Minuten und Stunden ginge nur begrenzt wenn die HW das Zählen der Überläufe eines anderen Timers erlauben würde. Das ginge ggf. mit externen Verbindungen (PWM -> Zählereingang). Es bleibt aber dabei das die Anzeige nacheinander aktualisiert wird - spätestens den Weg Binär nach BCD wird man in Software machen.