Im AVR mit Kommazahlen rechnen?

Gast #8298
Lesenswert?
• ▲
▼
Hallo ihr erfahrenen Programmierer,

es ist mir ja schon fast peinlich diese Frage zu stellen. Aber ich weiß 
ehrlichnicht mehr weiter.
Bin ein Anfänger in diesem Gebiet und arbeite erst seit einer Woche mit 
dem AT90S8535 und CODEVISION. Jetzt möchte ich einen kleinen 
Bord-Computer für mein Motorrad basteln und dazu muß ich aber im 
Programm eine Zahl durch 7,14644 teilen und möchte diese neue Zahl als 
Kommazahl im Display stehen haben.

Meine Frage:

Wie definiere ich eine Kommazahl in CodeVision? (short?)
Wie kann ich diese auf dem Display ausgeben?

Das Display läuft auch so weit, hab sogar schon "char"'s angezeigt.

Falls mir irgendjemand behilflich sein kann, bin ich im jetzt schon 
tausendmal dankbar.

Viele Grüße

Carsten
Gast #8299
Lesenswert?
• ▲
▼
Hi,

ich kenne Codevision nicht, denke aber, daß folgende zwei Ansätz 
Zielführend sind:

1.) Mit "float"-Zahlen kommst Du weiter!. Die Darstellung auf das 
Display bekommst Du, indem Du die float-Zahl in einen String wandelst. 
Dieser String kann dann zeichenweise (char) ausgegeben werden ...

2.) Mit Int,Short,char etc. geht es auch ! Su musst Dir Deine eigene 
Divisionsroutine schreiben. Das ist nicht so kompliziert wie es sich im 
ersten Moment anhört, da Du ja immer durch die selbe Zahl dividieren 
willst. Da Du als Ergebnis dann schon mehrere chars hast, kannst Du das 
direkt zeichenweise auf das Display geben...

Gruß

UBoot-Stocki
Gast #8301
Lesenswert?
• ▲
▼
Hallo Carsten,

Ich weiß ja nicht wieviel Zahlen du Dividieren willst aber sei damit 
vorsichtig, diese Dividierroutinen mit Kommazahlen ist sehr 
Speicherplatzschluckend.

ach ja, so wird es übrigens in C gemacht,

#include "stdio.h"

char *DeinText;
float DeineZahl = 7,558;
sprintf( DeinText, "Zahl: %f", DeineZahl ); // So konvertierst
                                            // du deine Zahl
                                            // in einen String

jetzt brauchst du nur noch den Text 'DeinText' ausgeben.
Gast #8302
Lesenswert?
• ▲
▼
CodeVision kann in der aktuellen Version(1.23.6) den 
Konvertierungs-Spezifizierer %f nicht unterstützen.

Wenn du aber registriertet User von CodeVision bist, und du dein
Problem dem Support schilderst, bekommst du mit eMail die Version 1.23.7 
prelimanary).
Diese Version unterstützt %f.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 24 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.