You are here

New Filter Component - How To Use? | Cypress Semiconductor

New Filter Component - How To Use?

Summary: 2 Replies, Latest post by Diode Dan on 10 Feb 2012 11:59 PM PST
Verified Answers: 2
Last post
Log in to post new comments.
AlexB's picture
18 posts

 Hi Everyone,

How do we go about using the new filter component? I would like to try the new filter component as follows:

1) 12 bit data input

2) Basic Hamming window FIR lowpass filter

12 bit sample data conceptual code:

//Global variables

int16 data[128] = {...};//Some array of input values that I will import from another program

int16 output[256];//Empty array that will hold the filter's output (big enough to account for size increase due to convolution)

uint16 i;//Counter for main loop

void main()



     for(i = 0; i < 128; i++)



          CyDelay(1);//Be sure that filter has finished its operation

          output[i] = Filter_Read16();


//Print the data to the test terminal upon completion


Is this the right way to go about using the filter? How do I choose the Readxx() function? Does the Read24() function give me the highest precision? Or will the Read16() be sufficent and scale properly?


Diode Dan's picture
48 posts

 I'm intrested in this too. I think you might have to set the coherency register 1st. Unfortunatley, all of the code examples for this are down right now.

Diode Dan's picture
48 posts

 I gave it a try with this code, and it seemed to work pretty well.


for(i = 0; i < IN_LEN; i++)


//Filter stuff

Filter_Write16(Filter_CHANNEL_A, input[i]);


output = Filter_Read16(Filter_CHANNEL_A);

//Take the filter's output and print to terminal via USB

sprintf(buffer, "%d,", output);



Log in to post new comments.