Also:
Code:
I have a lookup table with 4-bit numbers m=0..15. A value t should be scaled according to theese numbers, so that
s = t * m/16
Rather than using 16-bit multiplication followed by s>>4, I found a much faster code. As can be seen, the code can be carried out for e.g. 7-bit m-values as well.
-------------------- clrf s movf t, W bcf STATUS, C btfsc m, 0 addwf s, F rrf s, F bcf STATUS, C btfsc m, 1 addwf s, F rrf s, F bcf STATUS, C btfsc m, 2 addwf s, F rrf s, F bcf STATUS, C btfsc m, 3 addwf s, F rrf s, F btfsc STATUS, C incf s, F ;nearest value -----------------------
Regards, Anders Jansson
Comments: