GPIO interrupt keep systick interrupt from occuring?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2019-07-27 2:32 AM
Hi, Im senior engineer using stm32, maybe, not newbee.
I know that Higher interrupt priority can occur when mcu still process lower interrupt.
Higher interrupt , i mean, lower priority value in nvic register.
but just now, I found gpio interrupt can disturb systick interrupt, which is obviously higher then gpio.
I know that there is no pull up/down resister, so even simple interrupt can occur numerous times with my fingers. but It can disturb systick interrupt from occuring? theoretically I can't understand. what's going on?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2019-07-27 4:19 AM
Interrupts can also have different preemption levels.
You should be able to use an internal pull up/down resistor.
Failure to clear the interrupt sources will also result in an interrupt storm, where no lower priority execution will occur.​
Up vote any posts that you find helpful, it shows what's working..
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2019-07-27 4:57 AM
that's not the point. point is why systick interrupt not occur.
I know internal pullup/down can be solution of this by regressing interrupt
why gpio interrupt occur infinitely , while systick is not, even it has higher priority
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2019-07-27 6:11 AM
>>that's not the point. point is why systick interrupt not occur.
Yeah, and you're not reading the top line of the response properly.
Because the CM3/4 has an NVIC which considers priority AND preemption level. If you haven't set up the NVIC correctly it is going to block in your interrupt code and not leave to service others. Check the grouping setting you have selected that allocates bits to each request.
If you are using SysTick for timing loops or timeouts in interrupt/callback context you'd do better using a free running TIM to measure time.
Up vote any posts that you find helpful, it shows what's working..
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2019-07-27 6:26 AM
Oh , I'm sorry. I'll check. I didn't know preemption and interrupt are different.
thank you
​
BTW, I'm using Systick counting value made by cubemx code. I thought I can make timeout code but It's not proper to use callback or interrupt because of priority.
​
well, It's not a case you said obviously. isn't it proper that way i use by? is there any dependent component about systick clocks comparing with other timers?
​
​
