Berechnun in Assembler

Gast #838576
Lesenswert?

Guten Tag,
ich bin an einem Programm welches die Geschwindigkeit anhand einer 
bestimmten Strecke und einer gemessenen Zeit ausrechnet und auf einer 
LCD-Anzeige rausgibt.
Mein Problem ist dies, wenn:

geg:s=200mm
    t=101ms

ges: v=s/t=200mm/101ms= 1m/s Rest: 99

oder:

geg:s=200mm
    t=199ms

ges: v=s/t=200mm/199ms= 1m/s Rest: 1

wie kann ich diesen Rest jetzt berücksichtigen?

ich programmiere das ganze in Assembler in der uVision2 umgebung und das 
Resultat soll mit dem LCD-Modul vom MESA-Kit angezeigt werden!

gruss und danke
#838584
Lesenswert?

Hallo,

als Ansatz: 200mm * 1000, dann hast Du das Ergebnis in mm/s und mußt bei 
der Ausgabe nur das Komma richtig setzen.

Die 200000 ist ja eine Konstante, Du muß natürlich dann eine Division 
24Bit/8Bit benutzen und hast dann maximal 24Bit als Ergebnis.

Beispiele dazu sind im Netz, da Du den Kram ja anzeigen willst, spielt 
die Rechenzeit der Division keine wirkliche Rolle.

Gruß aus Berlin
Michael
Gast #839645
Lesenswert?

Ich habe mal den Link von Michael U. durchgelesen, doch bei einem Punkt 
wusste ich nicht genau wie dieser gemeint ist, vielleicht kann mir das 
jemand anders erklären:

3. die 16-Bit-Zahl in rd1h:rd1l wird bitweise in ein Hilfsregister rd1u 
geschoben (mit 2 multipliziert), rollt dabei eine 1 links heraus, dann 
wird auf jeden Fall zur Subtraktion im vierten Schritt verzweigt,...


danke
#843889
Lesenswert?

Uwe wrote:
> Kann mir jemand sagen ob es für meinen Prozessor (C509) einen ähnlichen
> Befehl gibt wie "ldi"?

Du weißt aber schon, daß der C509 ein 8051 ist?

Vergiß also die ganzen AVR-Diskussionen der anderen. Das ist ne völlig 
andere Architektur.


Ich hatte Dir ja bereits nen Link für ein 8051 Mathepaket in Assembler 
gegeben.
Da sind alle Grundrechenarten drin für beliebige Genauigkeit von 
16...640Bit.


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren