mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik In Bascom Komma statt Punkt als Trennzeichen


Autor: Michael Matthes (mima)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
'zusammen,

ich hoffe, folgende Frage beschäftigt nicht nur mich alleine, jedenfalls 
erbrachten Google und Forensuche nix ;)

Ich habe mehrere Werte, die ich mit Fusing(Variable,"#.#") auf einem LCD 
ausgebe. Funktioniert auch soweit gut, allerdings möchte ich (wie es im 
Deutschen richtigerweise sein sollte) ein Komma zur Trennung der 
Nachkommastellen verwenden, also statt z.B. 18.3 18,3 ausgeben. 
Fusing(Variable,"#,#") scheint ja nicht zu funktionieren.
Der Umweg, an der Position des Punktes nachträglich ein Komma über 
Locate x,y einzufügen, ist bekannt, aber für unschön befunden worden. 
Umwandlung zu String und Insertion des Kommas wäre ne Möglichkeit, aber 
es muss doch für dieses naheliegende Problem auch etwas Einfacheres 
geben, oder? ;)

Bedank,
Michael

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vermutung: Im Windows kann man irgendwo das Dezimalzeichen einstellen, 
Systemsteuerung, und dann Sprachoptionen. Vieleicht greift BASCOM darauf 
zu?
Vielleicht gibts diese Einstellung über einen $xyz Parameter? RTFM?

MfG
Falk

Autor: Michael Matthes (mima)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

zu 1. Nein, in der Systemsteuerung alles richtig eingestellt, daran 
haperts nicht.

zu 2. Möglich, dann würde ich den $xyz gerne kennen lernen ;)
zu 3. Getan, nix gefunden, in der englischsprachigen Welt stellt sich 
das Problem ja auch nicht ;)

Trotzdem Danke,
Michael

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich programmiere in C und da lege ich immer nen Puffer für das LCD an.
Ne LCD-Ausgabe ist ja recht langsam und macht einem die Performance 
zunichte, wenn man immer alles direkt aufs LCD schreibt.

Außerdem sollte man nicht zu oft auf das LCD schreiben, sonst kann man 
den Text nicht mehr lesen, wenn er sich ständig ändert.
Daher macht dann ein Timerinterrupt das Schreiben des Puffers in das 
LCD, immer ein Byte pro Interrupt. Nach etwa 200ms ist dann jedes Byte 
im LCD aufgefrischt.
Diese Lösung ist besonders effektiv, wenn der MC schon gut ausgelastet 
ist.

Und in dem Puffer kann man dann bequem den '.' durch ein ',' ersetzen.

Für einfache Programme, wo der MC kaum was zu tun hat, kann man auch den 
Puffer nur für die Zahl anlegen, das Komma einfügen, ihn direkt ausgeben 
und die 200ms warten.


Peter

Autor: Harry Up (harryup)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,
recht einfach geht das mit der format anweisung.

Anzeige = Format(str(level) , "0.0") + " bar"                    ' 
Ausgabe mit 1 Nachkommastelle

mit neueren bascom-compilern funktioneren verschachtelte funktionen 
nicht mehr, da muss dann stehen:

Anzeige = str(level)
Anzeige = Format(anzeige) , "0.0") + " bar"                    ' Ausgabe 
mit 1 Nachkommastelle

Anzeige als string * 8, Level als Long definiert.

grüssens, harry

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.