ايران ويج

نسخه‌ی کامل: برنامه ای واسه اختلاف فاز
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام من یه برنامه واسه میکرو میخوام که اختلاف فاز رو نشون بده.ورودی میکرو از خروجی رو اپ امپ .فرکانس کاری هم بالاتر از 2khz نیست
برای این کار باید هر دو سیگنال مورد نظر فرکانسسشون یکی باشه
حروجی آپ امپ هم باید بین 0 تا 5 باشه
برای این کار اول باید فرکانس موج ها رو بدست بیارین . تا اینجا که میشه یه فرکانس متر
سیگنالهارو باید به ورودی وقفه های 0و1 میکرو بدین و تو وقفه اول تایمر رو روشن کنید و تا وقفه دوم خورد تایمر خاموش بشه و بره برای محاسبات
نکته قابل توجه اینه که توی AVR نمیشه مثل 8051 اولویت وقفه ها رو دستی تنظیم کرد و اولویت وقفه ها به این صورته:
وقفه0>وقفه 1>وقفه2

یه روش دیگه هست که از این کار با 2 وقفه خیلی ساده تره
اونم استفاده از یک فلیپ فلاپ JK حساس به لبه بالا روندست و خروجی فلیپ فلاپ به تنها 1 وقفه از میکرو میره
اول خروجی فلیپ فلاپ رو ریست در نظر بگیرین
سیگنالی که به j میاد اگر یک شد و سیگنال K صفر باشه فلیپ فلاپ ست میشه و خروجیش 1 میشه
اینجا میکرو وقفه میخوره و توی زیر روال وقفه باید تایمر رو روشن کرد
در ادامه فرض کنید سیگنال K هم یک بشه در این صورت فلیپ فلاپ toggle میشه و خروجی که 1 بوده صفر میشه و دوباره میکرو وقفه میخوره و اینجا باید تایمر رو استپ کرد و به ادامه برنامه رفت

تا اینجا زمان تناوب سیگنال ها به صورت لحظه ای به دست اومده و زمان اختلاف هم داریم
رابطه اختلاف فاز هم اینطوریه:
(زمان اختلاف بین دو سیگنال تقسیم بر زمان تناوب سیگنالها)*360 بر حسب درجه

مهندس بابت توضیحات دستت درد نکنه.من از نظر تئوری بلد بودم.اما از اونجایی که برنامه نویسی من قوی نیست من میخواستم یکی از بچه های انجمن زحمتشو بکشه
از دوستان کسی هست بتونه برنامه اختلاف فاز رو با زبان سی بنویسه؟
ممنون میشم اگه کسی جواب بده.