Dmitry Kiryashov says: Possible realization of 1 + 1/256 + ... correction.
;1/256 * (1 + 1/256) =~ 0.999985 / 255 ;
scale255to100: ;25 = 16+8+1
clrf temp ;int
clrf temp1 ;frac
addwf temp,F ;1
rrf temp,F ;/2
rrf temp1,F
rrf temp,F ;/4
rrf temp1,F
rrf temp,F ;/8
rrf temp1,F
addwf temp,F ;8
rrf temp,F ;/16
rrf temp1,F
addwf temp,F ;16
rrf temp,F ;/32
rrf temp1,F
rrf temp,W ;/64
rrf temp1,F
;
; movwf temp2 ;1/256/256 if longer tail
; movwf temp3 ;1/256/256/256 is required
; etc...
;
addwf temp1,F ;1 + 1/256 correction
btfss temp1,7 ;either round if >= 0.5
skpnc ;or take carry
addlw 1 ;temp1 holds frac part
;
; movwf temp ;answer is either W or temp
return
If >=0.5 correction isn't required <btfss temp1,7> line
should be commented.
| file: /techref/microchip/math/scale/8bxperaccu.htm, 1KB, , updated: 2000/2/28 11:47, local time: 2009/11/7 17:21,
38.107.191.111:LOG IN
|
| ©2009 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions? Please DO link to this page! Digg it! <A HREF="http://piclist.com/techref/microchip/math/scale/8bxperaccu.htm"> PIC Microcontoller Math Method Scale 8 bits to a percent accuratly</A> |
| Did you find what you needed? |
|
Editor, assembler, disassembler and simulator w/ virtual component "plugins" (LED,LCD,key,motor,TV,etc). |
|
Ubicom SX18 thru SX52, PIC 16c5X compatibile, 50 to 75 MIPS microcontrollers! Now US customers can buy the Excellent SXDev from SXList.com for $150 + $15 import fee + s&h (~ $180 total+tax in CA) |
.