- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
Solved! Go to Solution.
- Labels:
-
PSoC 5LP
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.