اطلاعیه

Collapse
No announcement yet.

مشکل در استفاده از حلقه در روتین وقفه

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل در استفاده از حلقه در روتین وقفه

    سلام.
    کدی برای تست وقفه خارجی LPC1768 در کیل نوشتم.در روتین وقفه از یک حلقه برای انجام چشمک زدن به تعداد 5 بار استفاده کردم و برای ایجاد تاخیر هم از تایمر SysTick استفاده شده است.اولویت این تایمرهم بالاتر از وقفه خارجی گذاشتم.مشکلی که دارم در مرود دفعات اجرای حلقه است که دو برابر میشه یعنی 10 بار .ممنون میشم راهنمایی فرمایید .در ضمن متغیر حلقه هم داخل روتین وقفه و به صورت استاتیک تعریف کردم

    #2
    پاسخ : مشکل در استفاده از حلقه در روتین وقفه

    سلام مجدد
    دوستان مشکل حل .
    ایراد کار در این قسمت یوزر منوال نهفته بود:
    When a pin is selected for its external interrupt function, the level or edge on that pin
    (selected by its bits in the EXTPOLAR and EXTMODE registers) will set its interrupt flag in
    this register. This asserts the corresponding interrupt request to the NVIC, which will
    cause an interrupt if interrupts from the pin are enabled.
    Writing ones to bits EINT0 through EINT3 in EXTINT register clears the corresponding
    bits. In level-sensitive mode the interrupt is cleared only when the pin is in its inactive
    state
    .
    Once a bit from EINT0 to EINT3 is set and an appropriate code starts to execute (handling
    wake-up and/or external interrupt), this bit in EXTINT register must be cleared. Otherwise
    event that was just triggered by activity on the EINT pin will not be recognized in future.
    از اونجایی که بنده در حالت حساس به سطح از وقفه خارجی استفاده می کردم ، با فشردن دکمه ،برنامه بلافاصله وارد روتین وقفه می شود و پرچم وقفه پاک نمیشود.
    امیدوارم برای بقیه راه گشا باشه.

    دیدگاه

    لطفا صبر کنید...
    X