سلام یک برنامه نمونه نوشتم از وقفه خارجی که توسط نرم افزار هم میشه تریگش کرد
یادتون باشه وقتی تابع وقفه رو دارید اسم گذاری میکنید وقفه خارجی 0تا 4 هستش به نام
کد:
void EXTI0_IRQHandler(void)
این وقفه از 5 به بعدش میشه 5تا 9 به نام
کد:
void EXTI9_5_IRQHandler(void)
و از 10 15 هم به این شکل در تابع EXTI0_IRQHandler تمام پایه های پورت های پین 0 که اگر در GPIO به عنوان تریگر وقفه خارجی تعیین شده باشن به این تابع فراخوان میشن بعد از تحریک مثل پایه های A0 B0 C0 ,............................
از پایه های 0 تا 4 داری تابع مجزا هستن به نام های
کد:
EXTI0_IRQn |
EXTI Line0 Interrupt |
EXTI1_IRQn |
EXTI Line1 Interrupt |
EXTI2_IRQn |
EXTI Line2 Interrupt |
EXTI3_IRQn |
EXTI Line3 Interrupt |
EXTI4_IRQn |
EXTI Line4 Interrupt |
از پنج به بعد همه با تریگ شدن به یک تابع 5تا 9 فراخوان میشه وقفه های به چهار گروه تبدیل میشن که اگر بخواید در حالت 2 بعدی استفاده کنید اگر هم بخواید معمولی اتفاده کنید تقدم 0 تا 15 دارن اگر گروهی بخواید استفاده کنید تقدم 2 بعدی دارن به صورت
کد:
============================================================================================================================00083 NVIC_PriorityGroup | NVIC_IRQChannelPreemptionPriority | NVIC_IRQChannelSubPriority | Description
00084 ============================================================================================================================
00085 NVIC_PriorityGroup_0 | 0 | 0-15 | 0 bits for pre-emption priority
00086 | | | 4 bits for subpriority
00087 ----------------------------------------------------------------------------------------------------------------------------
00088 NVIC_PriorityGroup_1 | 0-1 | 0-7 | 1 bits for pre-emption priority
00089 | | | 3 bits for subpriority
00090 ----------------------------------------------------------------------------------------------------------------------------
00091 NVIC_PriorityGroup_2 | 0-3 | 0-3 | 2 bits for pre-emption priority
00092 | | | 2 bits for subpriority
00093 ----------------------------------------------------------------------------------------------------------------------------
00094 NVIC_PriorityGroup_3 | 0-7 | 0-1 | 3 bits for pre-emption priority
00095 | | | 1 bits for subpriority
00096 ----------------------------------------------------------------------------------------------------------------------------
00097 NVIC_PriorityGroup_4 | 0-15 | 0 | 4 bits for pre-emption priority
00098 | | | 0 bits for subpriority 00099 ============================================================================================================================
خلاصه کلیات وقفه همین کسی دیگه ایی اگر بیشتر فهمیده خوشحال میشم چیزی یاد بگیرم