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: 2024/11/25 09:23,
3.135.184.195:LOG IN
|
©2024 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? <A HREF="http://techref.massmind.org/techref/microchip/math/scale/8bxperaccu.htm"> PIC Microcontoller Math Method Scale 8 bits to a percent accuratly</A> |
Did you find what you needed? |
Welcome to massmind.org! |
Welcome to techref.massmind.org! |
.