=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Date: Thu, 06 Jan 2000 07:35:01
From: Nikolai Golovchenko
To: pic microcontroller discussion list
Subject: Re: Problems with 23/15 bits divide routines from AN617
--------------------------------------------------------------------------------
Emil wrote:
> I tried to divide 23 bits to 15 bits with FDX2315U
> subroutine from Application Note AN617. Unfortunately
> I received wrong results.
> Does anyone have working subroutine for such divide
> (23/15 or 24/16 bits).
> Thanks.
> Emil
This one works: (same usage as fxd2416u)
FXD2416U:
CLRF REMB0
CLRF REMB1
MOVLW 24
MOVWF LOOPCOUNT
LOOPU2416
RLF ACCB0, W ;left shift of accb0's msb to reminder
RLF REMB1, F
RLF REMB0, F
MOVF BARGB1, W ;REMB -= BARGB
SUBWF REMB1, F
MOVF BARGB0, W
BTFSS _C
INCFSZ BARGB0,W
SUBWF REMB0, F
BTFSC _C
GOTO UOK46LL ;if no borrow
MOVF BARGB1, W ;REMB += BARGB
ADDWF REMB1, F
MOVF BARGB0, W
BTFSC _C
INCFSZ BARGB0,W
ADDWF REMB0, F
BCF _C
UOK46LL
RLF AARGB2, F
RLF AARGB1, F
RLF AARGB0, F
DECFSZ LOOPCOUNT, F
GOTO LOOPU2416
RETURN
_
Nikolai Golovchenko, Electrical Engineering Student
National Mining University of Ukraine www.nmuu.dp.ua
Dnepropetrovsk, Ukraine
E-mail: golovchenko@mail.ru