با سلام
یک پروژه در حال کار دارم که از میکروکنترلر مگا 32 استفاده میکنم و با کامپایلر بسکام برنامه می نویسم
در این برنامه نیاز به استفاده از وقفه های خارجی دارم همچنین لازم دارم که با استفاده از تایمر/کانتر یک در مود PWM روی پایه های OC1A,OC1Bپالس PWM داشته باشم اما چون بعلت استفاده از وقفه های خارجی در ابتدای برنامه Enable Intrupts را آورده و وکلیه وقفه ها را فعال کرده ام هنگام استفاده از PWM ظاهرا وقفه ایجاد شده و برنامه قفل میکند. همچنین برای غیرفعال کردن وقفه های تایمر دستورات Disable Timer1 و ِ Disable Ovf1 را نیز استفاده کرده ام اما تاثیری نداشته و برنامه هنگ میکند.تنها در زیرنامه هایی که PWM وجود دارد با استفاده از دستور Disable Intrupts میتوانم وقفه ها را غیر فعال نمایم و برنامه هنگ نمیکند اما باعث شده که در این لحظات اگر وقف خارجی به مجموعه اعمال شود سیستم قادر به پاسخگویی به آن نباشد. خواهش میکنم در این زمینه مرا راهنمایی نماییدکه چطور میتوانتم وقفه های خارجی را فعال نگه داشته در حالی که وقفه های مربوط به تامیر را غیر فعال کنم. باتشکر
دیدگاه