با سلام
آیا وقفه خارجی در avr فقط به لبه پایین رونده ی پالس تحریک کننده حساسه؟
با سلام
آیا وقفه خارجی در avr فقط به لبه پایین رونده ی پالس تحریک کننده حساسه؟
نه
بعد از چند وقت برگشتم
نه به لبه بالا رونده پایین رونه - هر تغییر ممکن، و سطح هم هست!
دلیل اینکه با نزدیک کردن دست یا لمس کردن پوشش عایق میکرو پین مربوط به وقفه تحریک میشه و زیرروال اجرا میشه چیه؟نویز میتونه باشه ؟اگه نویز باشه پس چرا همیشه چنین اتفاقی صورت نمی گیره ؟(از موقعیکه یه سنسور pir به میکرو وصل شده هنگامیکه به ماژول gsm دیتا میاد سنسور pir خود بخود عمل میکنه و خروجی آن که جهت ایجاد اجرای وقفه استفاده شده یک میشه و زمانی که بدنه میکرو لمس میکنی یا حتی با نزدیک کردن انگشت به میکرو بدون اینکه لمس بشه وقفه صورت میگیره!!! البته نه همیشه )
خوب این طبیعی هست!
شما باید پایه اینتراپت رو با یه مقاومت مناسب پول آپ یا پول دون کنید بسته به استفاده ای که دارید از اون میکنید!
بله ، حق با دائیه. اما ممکنه که شما سنسور pir رو درست درایو نکرده باشی! چون من متوجه نشدم که شما چه جوری وصلش کردی به میکرو.
.
سلام
منم این مشکلو دارم. در ابتدای برنامه، دستور config int0=low level رو نوشتم. یعنی هر وقت پایه مربوطه صفر شد، وقفه اتفاق بیفته. پایه مربوط به وقفه هم pull up کردم. ولی وقتی پایه مربوط به وقفه رو لمس میکنم (یا بعضی وقتها خودبخود!) میکرو وارد زیربرنامه وقفه میشه. گفتم اگه از دستور config int0=rising به جای دستور بالا استفاده کنم شاید دیگه این مشکل پیش نیاد. فقط قبلش خواستم از شما اساتید بپرسم که منظور از لبه بالا رونده چیه؟ یعنی در این صورت؛ وقفه در چه حالتهایی فعال میشه؟ من میخوام وقتی ولتاژ 5 ولت به پایه مربوط به وقفه میدم، وقفه فعال بشه. از دستور config int0=rising میتونم استفاده کنم دیگه؟ یا باید از دستورات دیگری استفاده کنم؟
ممنون...
ممنون از پاسخ دوستان
آقا جان مشکل من حل نشد!
من میخوام وقتی یک رله وصل شد، وقفه فعال بشه. برای این کار پایه مربوط به int0 رو به پایه com رله وصل کردم و پایه NC رله هم با یک مقاومت 1K به VCC وصل کردم و پایه NO رله رو هم به GND وصل کردم. وقفه هم از نوع LOW LEVEL تعریف کردم. اما مشکل اینجاست که وقتی رله خاموشه، وقفه خودبخود فعال میشه. اما اگه اون مقاومت 1K رو بین int0 و VCC بردارم، درست میشه. از دوستان خواهش دارم راهنمایی کنند که مشکل از چیه و چطوری برطرف میشه؟ یعنی بهترین راه برای اینکه با خاموش بودن یک رله وقفه غیرفعال بمونه و با وصل شدن رله وقفه فعال بشه چیه؟
ممنون...
حتما از تاخیر چند میلی ثانیه جهت اتفاق وقفه استفاده کن و یا چند بار بخونش.تغیر ولتاژ ممکنه در حد چند نانو ثانیه اتفاق بیفته و میکرو اونو حس کنه شاید مشکلت حل بشه
چرا از رله استفاده کرده اید ؟
از یه اپتو کوپلر استفاده کن رله به خودی خود مشکل درست میکنه
اپیتو کوپیلر را هم پایه کلکتورشوو بده با به مقاومت 4.7 کیلو به مثبت تغذیه و امیترشو بده به زمین هر وقت تحریک کردی وارد وقفه میشه
موفق باشی
شما میتونی از ایپتوکوپلر ارزون قیمتی مثل pc817 استفاده کنی البته اگه هدفتو مشخص کنی بهتر میشه راهنمایی کرد
تو زیر روال وقفه بسته به سرعت مورد نیازت تاخیر یک یا چند میکرو ثانیه بده بعد دوباره پایه وقفه رو بخون حال اگه اتفاق وقفه بر اثر نویز باشه حتما تا اون لحظه از بین رفته و با دستور شرطی از زیر روال وقفه خارجش کن و اگر باقی باشه و پایه مربوطه همچنان تحریک باشه دستوراتت رو اجرا کنه باید با برنامه بازی کنی تا دستت بیاد