Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
02/27/02 15:48
Read: times


 
#20212 - RE: FIR Filter
mike, Thanks, I know that the CYGNAL part could do it but i have to use the AD part, i have no choice in this matter.
Franc, I'm doing most of the things you've suggested, its fixed point, i have no real use for the XCH (although i am considering another way of implementing the divide function). I have gotten my code down to 35 cycles for the 16 tap filter, however this is even a bit slow for the micro. The divide functions used (easier than using the multiply by a decimal value) are as follows:

Bitwise shifting 1
mov A,X0
ADD A,X14 ; Adding symmetrically equal component
mov A,020h ; Moving data to bitwise addressable register
mov 08h,C ; Moving the carry bit out
mov 09h,07h ; Bitwise shift
mov R7,032d ; Moving to running total
Divides 2 data points by 128

;Using Divide Function

mov A,X2
ADD A,X12
RRC A ;Here, to account for the overflow, i first rotated
mov B,#020d ;right using RRC so that there can be no overflow bits neglected.
div AB
ADD A,R7
Mov R7,A
Divides 2 data points by 40

and finally:
mov A,X6
ADD A,X8
RRC A
RR A
RR A
ADD A,R7
Mov R7,A
divides 2 coefficients by 8

anyone with any improvements on them would be a hero in my eyes!!

List of 9 messages in thread
TopicAuthorDate
FIR Filter            01/01/70 00:00      
RE: FIR Filter            01/01/70 00:00      
RE: FIR Filter            01/01/70 00:00      
RE: FIR Filter            01/01/70 00:00      
RE: FIR Filter            01/01/70 00:00      
RE: FIR Filter            01/01/70 00:00      
RE: FIR Filter            01/01/70 00:00      
RE: FIR Filter            01/01/70 00:00      
RE: FIR Filter            01/01/70 00:00      

Back to Subject List