4 Replies Latest reply on Dec 5, 2014 2:18 PM by DaKn_263916

    Shift Register Component Quirks

      I need to capture a bitstream into a buffer, and I was happy to find a shift register component that should have made this a 1-hour task. 24 hours later I'm still scratching my head. The interrupt output does not seem to work. and the DMA Wizard does not recognize the shift register component as a source.


      The attached project illustrates the problems. Am I missing something, or are these a bugs?

        • 1. Re: Shift Register Component Quirks

          Two notes: Set the isr1 and 2 to "Rising Edge", "derived" is used for FF blocks.


          You should issue a isr_ClearPending() in the interrupt handler (in case it gets stuck)




          The issue with the wizard is known, will probably corrected soon.





          • 2. Re: Shift Register Component Quirks

            Thanks for the tips. They may have helped, but I was still not getting interrupts on isr_2. I found the solution was to call


            ShiftReg_1_GetIntStatus(); // for the side effect of clearing the register


             in the isr_2 service routine. That's too bad because I wasn't planning on using an ISR at all. I guess I can just trigger the DMA from the store signal where it's connected in the .zip above.

            • 3. Re: Shift Register Component Quirks

              For your purpose (except sw-counting) an interrupt is not required. Fine that you got it to work!


              A tip for the next interrupt: You may use CY_ISR_PROTO() and CY_ISR() as described in the "System Reference Guide" accessable from Help menu in Creator. When using isr_StartEx()  you can keep the interrupt handlers in your own files (ie. main.c) and you do not need to tweak in some generated files which may get overwritten accidentially.





              • 4. Re: Shift Register Component Quirks

                This ap note discusses that and derived vs level triggered settings for ISR component. www.cypress.com/


                Also the f() calls above described in detail in component datasheet.




                Regards, Dana.