Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Geschwindigkeitsmessung Kategorie: Programmierung ASM (von Michael - 26.01.2005 12:06)
 Als Antwort auf Re: Geschwindigkeitsmessung von Dietmar - 25.01.2005 22:34
hallo dietmar,

besten dank für deine mühe.
das assemblerprog habe ich nun abgeändert, jetzt läuft es ca. 25mal schneller.
ergibt 2685888/counter   (3600*93,26*8)
skaliert mit 100
v=(26859/c)*10000    
r=26859 mod c
was habe ich übersehen, denn das ergebnis ist falsch.
mfg michael

>
> Hallo Michael,
>
> falls ich nicht zu kompliziert denke, dann bleibt Dir, wenn Du den Counter vor der Berechnung wirklich nicht skalieren und dadurch 2 Bits verlieren willst, nur übrig, eine binäre Division durchzuführen. Das hört sich schwieriger an als es ist. Außerdem muß nur der bei der Ganzzahl-Division entstehende Rest auf diese Weise verarbeitet werden. Siehe folgenden Code:
>
> define c word
> define v word
> define r word
> define n byte
> define i byte
>
> print
> print "Berechnung von v=120384/Counter mit zwei dezimalen Nachkommastellen"
> print "Bitte Counter eingeben (800..12000): ";
> input c
>
> v=(30096/c)*400    'Ganzahl-Division ("Vorkomma-Ergebnis")
> r=30096 mod c      'Rest
>
> n=0                'binaere Division: Rest durch Counter
> for i=0 to 7
>   r=r shl 1
>   n=n shl 1
>   if (r-c)<0 then endif
>     r=r-c
>     n=n or 1
>   #endif
> next i             'in n steht jetzt (r/c)*256
>
> v=v+(n*100)/64+1   'das +1 behebt zwei Rundungsfehler
>
> print "v=";v       'ist mit 100 skaliert und auf +/- 0.015 genau
> end
>
> Gruß, Dietmar

 Antwort schreiben

Bisherige Antworten:

Re: Geschwindigkeitsmessung (von Dietmar - 26.01.2005 17:43)
    Re: Geschwindigkeitsmessung (von Michael - 27.01.2005 14:22)
        Re: Geschwindigkeitsmessung (von Thomas - 3.03.2005 10:28)