SX Microcontroller DSP Math Method

8bit 16 step Averageing filter by Andrew Warren

    ; Written by Andrew Warren [fastfwd at ix.netcom.com].
    A couple days ago, I wrote that an averaging filter of the form:

          (WIDTH-1)*AVE + NEW
    AVE = -------------------
                 WIDTH

was "absurdly simple" if WIDTH = 256.  A couple of people have asked
in private email for the code; here it is:

AVEHI	equ	[ANY FILE REGISTER]	;Holds the average [0-255].
AVELO	equ	[ANY FILE REGISTER]	;Holds the fractional part
                                          ;of the average.
NEW	equ	[ANY FILE REGISTER]	;Holds the new sample.

    FILTER256:

	mov	W, AVEHI
	mov	W, NEW-w
	sb	C
	dec	AVEHI
	add	AVELO, W
	snb	C
	inc	AVEHI

7 words, 7 instruction cycles, "NEW" is unchanged.