اطلاعیه

Collapse
No announcement yet.

مشکل ایجاد پالسهای دقیق با avr

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل ایجاد پالسهای دقیق با avr

    سلام
    آقا من یه مشکل دارم برای یه پروژه درسی، هر کس بتونه کمک کنه خدا انشاالله هر چی میخواد، ییهو بهش بده!
    اما مشکل.
    من یک پتانسیومتر دارم که یک ولتاژی رو بین صفر تا vcc برمی داره به A/D می ده.
    دوتا پالس ورودی دارم که یکی پریودش 64 میکرو ثانیه است و دیگری 20 میلی ثانیه است. در ضمن دیوتی سایکل اولی 64/5 میکرو ثانیه و اون یکی 20/1.5 میلی ثانیه.
    حالا صورت مسئله:
    برنامه متناسب با نوع پروسه ای که توسط کاربر انتخاب شده می خواد یکسری پالس تولید کنه که : 1- دیوتی سایکلش متناسب با مقدار خونده شده از a/d باشه. 2- فرکانسش متناسب با نوع انتخاب کاربر یا 64 میکرو باشه یا 20 میلی و با اون پالس نظیرش سینک باشه. به زبون ساده با لبه پایین رونده یا بالا رونده پالس ورودی تریگ بشه.
    من با بسکام و مگا16 راحتترم ولی اگر کسی الگوریتمش رو هم بگه ممنونم. در ضمن سمپل از pwm , counter , timer مورد نیاز است.!!
    همه برنامه رو نوشتم ولی نمی تونم پالس دقیقی که پهناش رو از یک مقدار متغیر می گیره و با یک پالس ورودی دیگه تریگر میشه درست کنم.
    ممنون

    حسین خواجه جعفری
    اللهم صل علی فاطمه و ابیها، و بعلها و بنیها، و سر المستودع فیها،
    بعدد ما احاط به علمک...

    #2
    پاسخ : مشکل ایجاد پالسهای دقیق با avr

    سلام
    ببخشید شاید من درست متوجه نشده باشم :question: اما این کاری که شما می خواید بکنید به راحتی میشه با PWM انجام داد،فقط تنها کاری که شما باید بکنید اینه که مفادیر رجیسترها مثل OCR و ... رو تغییر بدید :exclaim:
    در مورد مثال هم باید بگم با Codevison توی سایت چند نمونه گذاشتم ولی برای بسکام باید بگردید :biggrin:
    در دیر مغان آمد یارم قدحی در دست
    مست از می می خواران از نرگس مستش مست

    دیدگاه


      #3
      پاسخ : مشکل ایجاد پالسهای دقیق با avr

      با سلام و تشکر
      بله فکر می کنم بهترین راهش با pwm باشه ولی مسئله اصلی اینه که چطور با پالس ورودی سینک بشن. می تونم روتین pwm رو که البته گرفتن مقدار a/d هم توی اون باشه با وقفه فعال کنم و پالس مرجع رو هم به ورودی وقفه بدم ولی باز هم باید در نظر داشت که دو نوع پالس ورودی دارم یک 64 میکرو و یکی 20 میلی که برای هر کدوم فرمول روتین pwm مخصوص به خود رو داره.
      اصلا بگذارید روشن تر بگم . این یک بخشی از پروژه پایان تحصیلات من که یک ویدئو میکسر هست می باشد. کاربر یک نوع وایپ رو برای تبدیل ویدئوی خط یک به ویدئوی خط دو انتخاب میکنه. متناسب با وایپ انتخاب شده باید دوتا پالس کنترلی تولید بشند که به میکسر ویدئو فرمان بدند. پالس دومی دقیقا not پالس اولی میشه چون روی هر نقطه یا ویدئو یک هست یا ویدئو دو. پس تعداد زیادی برابر با تعداد وایپها سابروتین pwm دارم. در هر سابروتین متناسب با نوع پالس یا مرجع 64 میکرو که طول خط ویدئو هست یا مرجع 20 میلی ثانیه که زمان هر فریم هست یا ترکیبی از هر دو مرجع هستند. پالسهای تولیدی بوسیله pwm از این دوتا پالس ورودی به عنوان تریگر استفاده می کنند. حالا فرض کنیم که کاربر وایپ رو انتخاب کرد و ما هم به روتین مربوطه رفتیم. حالا مقدار دیوریشن پالس متناسب با یک پتانسیومتر که همون دسته فیدر میکسر ما هست می باشد. در همین حال که کاربر دسته فیدر رو حرکت می ده a/d مقدار اونرو می خونه و در روتین باید نرمالایز بشه و به عنوان مقدار مورد نظر به pwm داده بشه. در همین حال کاربر میتونه یک وایپ دیگر رو انتخاب کنه و سیستم باید بتونه در همون حال که داره روتین یک وایپ رو اجرا می کنه به روتین دیگه متناسب با نوع وایپ انتخاب شده پرش کنه.
      محدودیتی در تعداد میکرو نیست. بخش ابتدایی برنامه داره یک کیبورد و یک ال سی دی رو کنترل می کنه تا شماره وایپ مورد نظر رو بگیره و اطلاعاتی رو رو ال سی دی نمایش بده. اون بخش رو آماده کردم. در ضمن همونطور که گفتم این یک بخش از میکسر هست که تمام کارهای دیگر اون انجام شده و منتظر این تکه آخر هست. :cry:از کمک شما و همه دوستان دیگه استقبال می کنم و صمیمانه تشکر میکنم. :eek:

      حسین خواجه جعفری
      اللهم صل علی فاطمه و ابیها، و بعلها و بنیها، و سر المستودع فیها،
      بعدد ما احاط به علمک...

      دیدگاه


        #4
        پاسخ : مشکل ایجاد پالسهای دقیق با avr

        سلام دوست عزیز
        به خاطر توضیحات کاملتون راجع به سوالتون ممنون،البته با توجه به سواد کم بنده بازم ممکنه نفهمیده باشم
        ببینید چیزی که من فهمیدم اینه که شما میخواد دو تا پالس داشته باشید با 2 تا فرکانس مشخص که پریود یکی 64میکرو و یکی 20 میلی ثانیه باشه،و در ضمن میخواد دیوتی سایکل هر کدوم هم قابل تغییرباشه
        فقط نمی دونم که این پالسها رو همزمان میخواید یا نه؟؟؟ یعنی می خواید از 2تا تایمر استفاده کنید؟؟؟
        اگه شما بخواید این کار رو انجام بدید می تونید از همون PWM میکرو استفاده کنید،اگر قسمت مربوطه رو در دیتاشیت میکرو بخونید حتما متوجه میشید
        فقط شما باید در برنامتون مقادیر رجیسترها رو تغییر بدید،چندتا فرمول توی دیتاشیت هست که برای محاسبات مربوطه کمکتون می کنه
        در دیر مغان آمد یارم قدحی در دست
        مست از می می خواران از نرگس مستش مست

        دیدگاه

        لطفا صبر کنید...
        X