سلام.
من میخوام وقفه GPIO رو در مجموع واسه 4 پایه فعال کنم به صورتی که در صورت وقوع وقفه پایه اول ، وقفه 3 پایه دیگه فعال بشه
واسه اینکار وقفه پایه اول رو درون تابع main فعال می کنم و وقفه سه پایه دیگه رو در ابتدای GPIO_IRQHandler فعال می کنم و در زیر روال GPIO_IRQHandler یه سری کارهای دیگه هم انجام میشه. و با استفاده از سه تا دستور if (((LPC_GPIOINT->IO2IntStatR)>>pinNum)& 0x1) رخ دادن هر کدوم از اون سه تا پایه رو بررسی می کنم ودرون if یه سری کار انجام میدم
حالا سوال اولم اینه که با رخ دادن هر کدوم از این سه وقفه ، آیا زیرروال GPIO_IRQHandler از ابتدا اجرا میشه؟؟؟؟؟(برداشت خودم اینه که اجرا نمیشه چون پرچم وقفه اولی هنوز پاک نشده و در انتهای GPIO_IRQHandler پاک میشه.درسته؟؟؟)
سوال دومم هم اینه که آیا با نوشتن صفر در پین مورد نظر رجیستر LPC_GPIOINT->IO0IntEnR ، آیا وقفش غیرفعال میشه؟؟؟اگه آره ، نیازه که پرچمش رو هم پاک کنم؟؟؟
ببخشید طولانی شد.
من میخوام وقفه GPIO رو در مجموع واسه 4 پایه فعال کنم به صورتی که در صورت وقوع وقفه پایه اول ، وقفه 3 پایه دیگه فعال بشه
واسه اینکار وقفه پایه اول رو درون تابع main فعال می کنم و وقفه سه پایه دیگه رو در ابتدای GPIO_IRQHandler فعال می کنم و در زیر روال GPIO_IRQHandler یه سری کارهای دیگه هم انجام میشه. و با استفاده از سه تا دستور if (((LPC_GPIOINT->IO2IntStatR)>>pinNum)& 0x1) رخ دادن هر کدوم از اون سه تا پایه رو بررسی می کنم ودرون if یه سری کار انجام میدم
حالا سوال اولم اینه که با رخ دادن هر کدوم از این سه وقفه ، آیا زیرروال GPIO_IRQHandler از ابتدا اجرا میشه؟؟؟؟؟(برداشت خودم اینه که اجرا نمیشه چون پرچم وقفه اولی هنوز پاک نشده و در انتهای GPIO_IRQHandler پاک میشه.درسته؟؟؟)
سوال دومم هم اینه که آیا با نوشتن صفر در پین مورد نظر رجیستر LPC_GPIOINT->IO0IntEnR ، آیا وقفش غیرفعال میشه؟؟؟اگه آره ، نیازه که پرچمش رو هم پاک کنم؟؟؟
ببخشید طولانی شد.
دیدگاه