Forum: Mikrocontroller und Digitale Elektronik Probleme mit Programmierung einer Binäruhr


von Nico (Gast)


Angehängte Dateien:

Lesenswert?

Moin Moin,

ich habe mir ne Binäruhr auf eine 160x100mm Platine gebastelt und
betreibe die Uhr mit einem AT Mega 8. Der Mega 8 steuert 3 450 ICs
(dual Binär-Zähler), die wiederum die LEDs direkt ansteuern.
Auf der Platine befinden sich zwei Taster. Der erste Taster hält auf
Druck das normale Zählen an und wechselt bei weiterem Tastendruck von
Stunden zu Minuten, von Minuten zu Sekunden, von Sekunden zum
Normalbetrieb. Währenddessen kann man mit dem zweiten Taster die Uhr
stellen.

Das Progamm, das ich schrieb, wirkt mir wesentlich zu lang und
umständlich. Das liegt vielleicht daran, daß es mein erstes ist
Naja funktionieren tut es, aber zwei gefallen mir noch nicht:

Wenn die 1er-Sekundenanzeige den Wert 10 errreicht, muß Sie ja
augenblicklich zurückgesetzt werden und die 10er Sekundenanzeige zählt
um 1 hoch. Bei der 1er Anzeige ist für eine halbe Sekunde trotzdem die
10 zu erkennen.

Dann läuft die Uhr nicht genau auf 1Hz - ich habe ziemlich große
Abweichungen, wenn ich das Ganze mit einer normalen Uhr vergleiche.
Ich nutze den internen 1Mhz Ozillator, der natürlich nicht genau 1Hz
erreicht. Ich habe hier noch ein Uhrenquarz liegen, mit dem man die
gewünschten 1Hz bestimmt realisieren kann (Timer-Interrupt)- ich weiß
nur noch nicht wie.

Ausserdem wäre es nicht schlecht, wenn das Programm automatisch zählt,
wenn Taster, der zum Stellen benutzt wird, länger als beispielsweise 1
Sekunde gedrückt wird.

Anbei der Quelltext(Bascom). Auf Wunsch kann ich den Code auch direkt
ins Forum schreiben - wird nur recht lang.

Ich würde mich freuen, wenn sich jemand das Programm mal anschauen
könnte und mir ein paar Verbesserungsvorschläge geben kann.

Mfg Nico

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.