درود بر همه دوستان.
همه ما میدونیم در میکرو AVR منابع مختلفی برای وقفه ها وجود داره که در برخی از میکروها تا 3 تاش خارجی هستن.مثل MEGA16
از طرفی میدونیم که سرعت اجرای دستورات درمیکرو بالاست طوری که برخی از دستورات با فقط یک کلاک پالس بصورت کامل اجرا میشن:
من تو یکی از پروژه هام متوجه نکته ای شدم که ارتباط مستقیمی داشت با سرعت خود وقفه به این صورت:
در اون پروژه من یک انکودر رو متصل کردم به وقفه خارجی شماره 0 میکرو مگا 16 و با یه کریستال 12Mhz میکرو رو راه اندازی کردم . انکودری که تو اون سیستم استفاده شده بود دارای دقت فوق العاده بالایی بود طوری که در max پالسهایی با فرکانس 60Khz و با دامنه ولتاژ 5V رو خروجی میفرستاد از طرفی من هم 2 تا دستور شرطی توی کدویژن و زیر موضوع وقفه شماره0 داشتم که تو یکی از اون شرطها یک مقدار یک متغییر داءم به LCd فرستاده میشد. اما مشکلی که تو این مدار بوجود اومد این بود که بعلت فرکانس بالا یا چیزی که من هنوزم اونو متوجه نشدم وقفه تو این پروسه کم میاورد و در همه موارد وقتی فرکانس انکودر بالا میرفت نمیتونست سرعت خودشو با اجرای دستورات آداپته کنه .
حالا این سوال مطرح میشه که اولا سرعت اجرای وقفه 0 چقدر هست با توجه به اینکه فکر کنم پردازشگر وقفه در میکرو بصورت کاملا جداگانه از CPU کار میکنه(مطابق با بیانات دیتاشیت) ؟
بعد مگه سرعت پردازش دستوراتی که تو زیر موضوع وقفه ها نوشته میشه رابطه مستقیم با کلاک CPU نداره؟ اگه جواب بله هست پس چرا 2 تا دستور شرطی ساده رو نمیتونه با سرعت پردازش کنه و قبل از رسیدن وقفه جدید برگرده به برنامه اصلی تازه با اینکه کریستال میکرو رو 16Mhz درایو شده؟
لطفا نظراتتون رو تو این پست در مورد این موضوع قرار بدین ؟ :rolleyes: :rolleyes:
همه ما میدونیم در میکرو AVR منابع مختلفی برای وقفه ها وجود داره که در برخی از میکروها تا 3 تاش خارجی هستن.مثل MEGA16
از طرفی میدونیم که سرعت اجرای دستورات درمیکرو بالاست طوری که برخی از دستورات با فقط یک کلاک پالس بصورت کامل اجرا میشن:
من تو یکی از پروژه هام متوجه نکته ای شدم که ارتباط مستقیمی داشت با سرعت خود وقفه به این صورت:
در اون پروژه من یک انکودر رو متصل کردم به وقفه خارجی شماره 0 میکرو مگا 16 و با یه کریستال 12Mhz میکرو رو راه اندازی کردم . انکودری که تو اون سیستم استفاده شده بود دارای دقت فوق العاده بالایی بود طوری که در max پالسهایی با فرکانس 60Khz و با دامنه ولتاژ 5V رو خروجی میفرستاد از طرفی من هم 2 تا دستور شرطی توی کدویژن و زیر موضوع وقفه شماره0 داشتم که تو یکی از اون شرطها یک مقدار یک متغییر داءم به LCd فرستاده میشد. اما مشکلی که تو این مدار بوجود اومد این بود که بعلت فرکانس بالا یا چیزی که من هنوزم اونو متوجه نشدم وقفه تو این پروسه کم میاورد و در همه موارد وقتی فرکانس انکودر بالا میرفت نمیتونست سرعت خودشو با اجرای دستورات آداپته کنه .
حالا این سوال مطرح میشه که اولا سرعت اجرای وقفه 0 چقدر هست با توجه به اینکه فکر کنم پردازشگر وقفه در میکرو بصورت کاملا جداگانه از CPU کار میکنه(مطابق با بیانات دیتاشیت) ؟
بعد مگه سرعت پردازش دستوراتی که تو زیر موضوع وقفه ها نوشته میشه رابطه مستقیم با کلاک CPU نداره؟ اگه جواب بله هست پس چرا 2 تا دستور شرطی ساده رو نمیتونه با سرعت پردازش کنه و قبل از رسیدن وقفه جدید برگرده به برنامه اصلی تازه با اینکه کریستال میکرو رو 16Mhz درایو شده؟
لطفا نظراتتون رو تو این پست در مورد این موضوع قرار بدین ؟ :rolleyes: :rolleyes:
دیدگاه