ايران ويج

نسخه‌ی کامل: مشکل با وقفه خارجی(INT 0)میکرو
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سلام
دوستان یه مدار دارم که میخام وقتی برق قطع میشه میکرو یه چند تا دستور رو انجام بده و بعد به حالت POWER DOWN بره .وقتی برق هم وصل شد توسطINT 0 میکرو فعال بشه و روند عادی برنامه رو طی کنه .OK؟؟؟

شرح مدار و برنامه ::
روی پایه INT 0 همیشه 5 ولت هست مگر اینکه برق قطع بشه .وقتی این پایه صفر میشه توسط این دستور یه سری کارها رو انجام میدیده::
Debounce Pind.2 , 0 , Off

OFF:
A
A
A
POWER DOWN

من از وقفه INT 0استفاده کردم و به لبه بالا رونده Rising حساسش کردم .میخام وقتی که برق وصل شد به یه برچسب پرش کنه و چند تا دستور رو انجام بده .الان مشکلی که دارم اینکه چون دائما 5 ولت رو پایه INT 0هست ،،مدام دستور مربوطه اجرا میشه

برنامه اینه::
Enable Interrupts
Enable Int0
Config Int0 = Rising
On Int0 On

Debounce Pind.2 , 0 , Off

OFF:
A
A
POWER DOWN


ON:

A
A
Return

مشکل اینه وقتی برق وصل هست دستورات ON اجرا میشه چون 5 ولت دائما رو این پایه هست.دوستان چه راه حلی رو برای حل این مشکل پیشنهاد میکنند؟؟
(۲۶-خرداد-۱۳۹۱, ۱۸:۱۰:۵۸)علیدلی نوشته است: [ -> ]سلام
دوستان یه مدار دارم که میخام وقتی برق قطع میشه میکرو یه چند تا دستور رو انجام بده و بعد به حالت POWER DOWN بره .وقتی برق هم وصل شد توسطINT 0 میکرو فعال بشه و روند عادی برنامه رو طی کنه .OK؟؟؟

شرح مدار و برنامه ::
روی پایه INT 0 همیشه 5 ولت هست مگر اینکه برق قطع بشه .وقتی این پایه صفر میشه توسط این دستور یه سری کارها رو انجام میدیده::
Debounce Pind.2 , 0 , Off

OFF:
A
A
A
POWER DOWN

من از وقفه INT 0استفاده کردم و به لبه بالا رونده Rising حساسش کردم .میخام وقتی که برق وصل شد به یه برچسب پرش کنه و چند تا دستور رو انجام بده .الان مشکلی که دارم اینکه چون دائما 5 ولت رو پایه INT 0هست ،،مدام دستور مربوطه اجرا میشه

برنامه اینه::
Enable Interrupts
Enable Int0
Config Int0 = Rising
On Int0 On

Debounce Pind.2 , 0 , Off

OFF:
A
A
POWER DOWN


ON:

A
A
Return

مشکل اینه وقتی برق وصل هست دستورات ON اجرا میشه چون 5 ولت دائما رو این پایه هست.دوستان چه راه حلی رو برای حل این مشکل پیشنهاد میکنند؟؟
خوب اینتراپت رو غیر فعال کن وقتی برق قطع شد قبل ار اینکه به پاور سیو بری انتراپت رو فعال کن
disable int0
بعد
enable int0
سلام.

شما وقتي يه پايه رو به صورت وقفه فعال مي كنيد ، چه معنيي مي ده كه اون رو ورودي هم تعريف كنيد ؟!
اصلا كانفيگ هاشون به هم نمي خوره ...
اين يه چيزهه و اون يه چيز ...
حداقل من اينطور تصور مي كنم ...
(۲۶-خرداد-۱۳۹۱, ۲۰:۱۰:۵۹)sharin نوشته است: [ -> ]سلام.

شما وقتي يه پايه رو به صورت وقفه فعال مي كنيد ، چه معنيي مي ده كه اون رو ورودي هم تعريف كنيد ؟!
اصلا كانفيگ هاشون به هم نمي خوره ...
اين يه چيزهه و اون يه چيز ...
حداقل من اينطور تصور مي كنم ...
ممنون میشم راهنمایی کامل کنید .مثلا چطور برنامه رو بنویسم که درست بشه
1. هدف شما در استفاده از وقفه چي هست ؟
با مفهوم وقفه آشنايي داريد ؟

اگر قرارهه يه سري عمليات خاص با رخ دادن يك رويداد انجام بگيره ، كدها رو مي تونيد در روال وقفه بنويسيد.
اگر قرارهه فقط ميكرو رو از مد sleep در بيارهه ، با رفتن به روال وقفه ، فقط Return مي كنيم.
و ...
بستگي دارهه كارتون چي باشه . اصلا شايد نيازي به وقفه هم نباشه ...
به هر حال روش هاي مختلفي براي هر كاري وجود دارهه ...

كافي بود ؟
یه مثال توی سایت گذاشته بودم!هرکارش میکنی نمیشه
برای یه بار هم که شده میاد و وقفه رو اجرا میکنه!
منم نمیدونم چرا؟اما فکر میکنم قانونش همینه !
(۲۷-خرداد-۱۳۹۱, ۰۲:۱۰:۲۶)abbasalifix نوشته است: [ -> ]یه مثال توی سایت گذاشته بودم!هرکارش میکنی نمیشه
برای یه بار هم که شده میاد و وقفه رو اجرا میکنه!
منم نمیدونم چرا؟اما فکر میکنم قانونش همینه !

یا نرم افزار و یا سخت افزار اشکال داره. این طور نیست که حتما یک بار اجرا بشه. مگر اینکه اینتراپت رخ داده باشه.
تغییر در پورت هم میتونه باعث ایجاد اینتراپت بشه. مثلا پورت رو 0 و یا 1 کنید.
یه بار که نه !
منظورم رو بد گرفتین !
یه بار همون اول بدون اتفاق خاصی وقفه فعال میشد
منظورتون INT0 , 1 هست ؟
احيانا به اين پايه ها كليد متصل هست ؟
اگر آره ، كه سخت افزار كليد اتون رو نسبت به حساسيت سر لبه ي مثبت يا منفي اشتباه طراحي كرديد.
و اگر واقعا مشكل حل نشد ، مي تونيد از يك counter و يك شرط در وقفه استفاده كنيد.

موفق باشيد.
متوجه شده بودم. اما من خوب ننوشتم.
نباید الکی اینتراپت فعال بشه. و حتما اشکالی در نحوه استفاده اش هست. و قانونش این نیست که در زمان راه اندازی اینتراپت یک بار اجرا بشه.
از تمامی دوستان سپاس گذارم .مشکل حل شد
صفحه‌ها: 1 2