mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie Kommazahlen erzeugen??


Autor: Mario Mauerer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo miteinander,

ich hänge mit meinem AD Konverter fest.
Ich möchte die daran anliegende Spannung in Volt auf ein LCD ausgeben.

Vom ADC erhalte ich ja Werte von 0 bis 1024. Diese kann man ja ohne
Probleme in Volt umrechnen. Nur: Die Hardware macht das irgendwie nicht
mit... Der lässt die Nachkommastellen weg und gib nur die vordere Zahl
aus... (ATmega8, mit Bascom programmiert)..

Wie mach ich das? Dass beim ADC-Wert 512 2.5V aufm Display steht??

Herzliche Grüsse
Mario

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das kommt schliesslich darauf an, wie du das skalierst. Hat mit Hardware
hertlich wenig zu zun, das ist auschliesslich Softwaresache. Am besten
rechnest du Ganzzahl-Arithmetik, das Komma nur bei der Ausgabe
berücksichtigen.
In deinem Fall:
A2D-Wert*5000/1024 -> ergibt bei A2D=512 2500. Der Rest ist
Ausgabesache.

Autor: Mario Mauerer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, die mV hab ich auch hingekriegt. Nur: Wie kann ich dem Typen sagen,
er soll die Zahl zerlegen? Ich brauche ja die zwei und die fünf
separat.... Mit einem Komma dazwischen.. Gibts da einen Hochbefehl?

Gruss
Mario

Autor: MartinS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das progst du in deiner Ausgaberoutine. du sagst einfach das immer das
3. letzte Zeichen ein Komma ist.

Autor: Mario Mauerer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha, cooler Trick! Und wie mach ich das? (In Bascom)...

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dafür gibts mehrere Möglichkeiten, mit der genauen Syntax von Bascom
kenne ich mich aber nicht aus:
-Ausgabe des Ergebnisses/1000    //2
-Ausgabe eines Kommas oder Punkt //2.
-Ausgabe des Divisionsrestes     //2.500

Autor: Mario Mauerer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jetzt müsste man nur noch den Divisionsrest und die zwei trennen
können....

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein Gott, so schwer ist das doch nicht...
Dein Ergebnis:2500
Das teilst du durch 1000, ergibt 2, die zeigst du an.
Als nächstes ein Komma
Dann die Modulo-Division: 2500%1000 ergibt 500, ausgeben, fertig.

Autor: Mario Mauerer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eeehm, 2500 durch 1000 gibt 2.5. Das rundet man auf, gibt 3
Oh, Modulo.. Hatten wir mal in der Schule, grad mal gucken , wie das
geht.. :)

Autor: Mario Mauerer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah, 2500=500 mod(1000)
Stimmt das so?
Oder:
17=2 mod(3)

Aber wie geht das mit den 2500 durch 1000? Wieso gibt das 2 und nicht
3?

Und: Wie kriege ich es hin, dass, wenn ich z.B. 21V anzeigen möchte,
dann muss ja das Komma auch eine Stelle nach rechts rutschen, als wenn
ich nur einstellig messen möchte.. Macht es das automatisch?

Gruss und vielen Dank

Mario

Autor: Mario Mauerer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, das mit dem Modulo hat geklappt!!!
A=2500 mod 1000
für den Rest.

Nur: Sobald die Zahl vor dem Komma zweistellig wird, verschiebt er das
Komma nicht... Man sieht nur die erste Stelle der Zahl... Kann man das
durch Kommaverschieben lösen, oder soll man mehr Platz einräumen?

Herzlichen Gruss
Mario

Autor: unbekannt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
2500/1000 = 2 + Rest !!!

Du musst schon etwas selbst überlegen, wie du dein Programm
programmierst. Oder probier es einfach aus.

Autor: unbekannt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der µC Rundet nicht von selbst, dazu ist er viel zu doof.

Autor: Hannes Lux (hannes)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
In ASM könnte ich dir ja helfen (Anhang), aber in BASCOM nicht...

...

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.