please dont rip this site

PIC Microcontoller Math Method

Reciprocal 32768/x

from by Nikolai Golovchenko

Don't know how to explain its operation, but what it does is approximate calculation of 32768/x using linear interpolation between points where x=1,2,4,8,16,32,64,128,256.

The routine can be extended for other number of bits in x.

        x, yh, yl

        clrf x
;       movlw 129
;       movwf x
        call Reciprocal8
        incf x, f
        goto again

; Approximate calculation of 32768/x
; Input: x
; Output: y = 256 * yh + yl ~= 32768/x
; To calculate reciprocal, linear interpolation
; is used between points, where x=1,2,4,8,16,32,64,128
; Size: 19 instructions
; Execution speed(worst case including return):
;  6+4*8-1+4+4+2=47
; 4 Aug 2000 by Nikolai Golovchenko
        movf x, w
         retlw 1        ;error - division by zero
        movwf yh
        clrf yl
        rrf yl, f
        rlf yh, f
         goto Reciprocal8a

        rrf yh, w
        clrf yh
        subwf yh, f
        rrf yh, f
        rrf yl, f
         goto Reciprocal8b
        retlw 0         ;ok

See also:

file: /Techref/microchip/math/div/recip32k-ng.htm, 1KB, , updated: 2000/8/8 18:21, local time: 2019/9/16 16:12,


<A HREF=""> PIC Microcontoller Math Method Reciprocal 32768/x</A>


Link? Put it here: 
if you want a response, please enter your email address: 
Did you find what you needed?

  PICList 2019 contributors:
o List host: MIT, Site host, Top posters @20190916 RussellMc, David Van Horn, Bob Blick, AB Pearce - UKRI STFC, Jason White, Dwayne Reid, James Cameron, David C Brown, Manu Abraham, Neil,
* Contributors: Richard Seriani, Sr.

Welcome to!