www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Uhrzeit auf Lcd ausgeben


Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe mir eine Uhr mit Hilfe des Timers gebastelt. Funktioniert auch
einwandfrei. Jetzt gebe ich das ganze auf mein Lcd aus. Sagen wir mal:
12:25:11. Also super, so wollte ich es, aber wenn die Stunden, Minuten
oder Sekunden auf Null stehen, sieht das in etwa so aus: 12:0:2. Das
wollte ich natürlich nicht. Hat jemand eine Idee zur Lösung? Es sollte
mit Bascom realisierbar sein.
Gruß Holger

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du wirst deine Zahlen in Strngs wandeln müssen, und wenn die Zahl
kleiner als 9 ist, noch eine 0 voranstellen müssen.

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falls jetzt die Frage aufkommt: "Wie mache ich das denn in BASCOM?"
Antwort: "Weiß ich nicht. Aber irgendwelche Strinbearbeitungsroutinen
wird es in BASCOM schon geben."

Autor: André Kronfeldt (freakazoid)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann ja auch sein, daß er das schon macht und nur die führenden Nullen
im Formatsting vergessen hat. Also sowas wie '%d:%d:%d' statt
'%02d:%02d:%02d'.

> Es sollte mit Bascom realisierbar sein.
Hat Bascom Einschränkungen gegenüber anderen Programmiersprachen?
Denke man kann nahezu alles in Allem realisieren. Kommt nur darauf an
ob  hinterher Aufwand und Nutzen in einem guten Verhältnis stehen ;-)

Grüße, Freakazoid

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich habe bis jetzt die normalen Zählerwerte genutzt zur Ausgabe.
Ich bin davon ausgegangen das jede rechenarbeit (also auch das wandeln
in Strings) eine weitere Ungenaigkeit mitbringt. Oder liege ich da
falsch? Mir ist schon klar, das die ganze Angelegenheit sowieso nicht
wirklich genau ist, aber man muss es ja nicht noch verschlimmern, wenn
es anders geht. Dachte ich jedenfalls.
Gruß Holger

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Oder liege ich da falsch?
Sofern du mit ganzen Zahlen rechnest, liegst du bzgl. der Genauigkeit
falsch.

Wie sieht deine Ausgabe denn bisher aus?

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist die Grundversion des Codes:

$regfile = "m8def.dat"
$crystal = 3686400

Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 ,
Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcdbus = 4
Cursor Off Noblink

Dim Stunde As Byte , Minute As Byte , Sekunde As Byte

Config Timer1 = Timer , Prescale = 64
On Timer1 Timer_irq
Const Startwert = 7936
Enable Timer1
Enable Interrupts



Stunde = 21
Minute = 59
Sekunde = 50
Cls
Do
If Sekunde = 0 Then Cls
Locate 1 , 2
Lcd Stunde ; ":" ; Minute ; ":" ; Sekunde


Loop

Timer_irq:
Timer1 = Startwert
Incr Sekunde
If Sekunde = 60 Then
Sekunde = 0
Incr Minute
End If
If Minute = 60 Then
Minute = 0
Incr Stunde
End If
If Stunde = 24 Then
Stunde = 0
End If
Return

Also wirklich im Moment mit ganzen Zahlen nur geht eben "01" usw.
nicht.

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Lcd Stunde ; ":" ; Minute ; ":" ; Sekunde

if Stunde < 10 LCD "0"
LCD Stunde ; ":" ;
if Minute < 10 LCD "0"
LCD Minute ; ":" ;
if Sekunde < 10 LCD "0"
LCD Sekunde

Ist etwas länger, sollte aber funktionieren.
Ob der LCD-Befehl eine eigene Formatierung beitzt, weiß ich nicht.
Bascom hat aber eigentlich auch eine Date$- und Time$-Funktion...

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wer lesen kann ist klar im Vorteil! :-) Ich kann scheinbar nicht lesen.
Man sollte manchmal einfach einen Blick in die (Bascom)-Hilfe werfen.
Da steht dann auch tatsächlich Time$ usw.
Also vielen Dank erstmal.
Gruß Holger

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibts in Bascom kein "PRINT USING"? In den üblichen Basic-Dialekten
war das die einfachste Möglichkeit, Zahlen formatiert auszugeben.

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In BASCOM heist das FORMAT.

Wenn ich die Doku richtig deute würde das so gehen

LCD Format( Stunde, "00" ); ":"; Format( Minute, "00" ); ":"
Format( Sekunde, "00" )

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also mit Format funktioniert es nicht. Es geht mit:
config clock = soft und dem Time Ausdruck ohne "$".
Danke an alle die mich auf den richtigen Weg geführt haben.

Gruß Holger

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.