اطلاعیه

Collapse
No announcement yet.

نحوه ی کار pwm در avr (ساب روتین/سخت افزار) ؟

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

    نحوه ی کار pwm در avr (ساب روتین/سخت افزار) ؟

    سلام خدمت دوستان
    می خواستم با تایمر 2 یا 1 اتمگا 8 یه PWM بسازم
    ولی خیلی برام مهمه که سیکلی هدر نره
    الان سوالی که دارم اینه که درست شدن PWM به طور سخت افزاری اتفاق می افته یا به ساب روتین خاصی پرش می کنه؟ و پردازش می گیره؟
    ممنون دوستان
    همیشه کامل توضیح بدهیم تا جواب کامل بگیریم.
    لطفا برای تشکر روی دکمه تشکر بزنید و بخاطر این پست نزنید که تایپیک شلوغ نشود
    تایپیک های من:
    حل تمام مشکلات atmega128a (eca.ir)
    آموزش کار با سایت (eca.ir)

    #2
    پاسخ : نحوه ی کار pwm در avr (ساب روتین/سخت افزار) ؟

    نوشته اصلی توسط electromohammad نمایش پست ها
    سلام خدمت دوستان
    می خواستم با تایمر 2 یا 1 اتمگا 8 یه PWM بسازم
    ولی خیلی برام مهمه که سیکلی هدر نره
    الان سوالی که دارم اینه که درست شدن PWM به طور سخت افزاری اتفاق می افته یا به ساب روتین خاصی پرش می کنه؟ و پردازش می گیره؟
    ممنون دوستان
    سلام
    تایمرها مد مخصوص pwm دارن. توی این حالت شما فرکانس و بقیه موارد تایمر رو تنظیم میکنید، یک مقدار مقایسه هم بهش میدید و خود تایمر موج pwm روی خروجی میسازه و CPU رو هم مشغول نمیکنه. هر وقت هم لازم باشه، با تغییر مقدار مقایسه میتونید عرض پالس رو تغییر بدید که محاسباتش توی دیتاشیت موجوده.
    صد البته که میتونید خودتونم نرم افزاری pwm بسازید که این دیگه احتیاج به درگیر کردن CPU داره و برای کاربردهای معمول زیاد به کار نمیاد. با این حال این روش هم مزایای خاص خودش رو داره.

    دیدگاه


      #3
      پاسخ : نحوه ی کار pwm در avr (ساب روتین/سخت افزار) ؟

      نوشته اصلی توسط electromohammad نمایش پست ها
      سلام خدمت دوستان
      می خواستم با تایمر 2 یا 1 اتمگا 8 یه PWM بسازم
      ولی خیلی برام مهمه که سیکلی هدر نره
      الان سوالی که دارم اینه که درست شدن PWM به طور سخت افزاری اتفاق می افته یا به ساب روتین خاصی پرش می کنه؟ و پردازش می گیره؟
      ممنون دوستان
      دوست عزیز تغییر پهنای پالس با استفاده رجیسترهای Output Compare Registers یا OCR به صورت کاملا سخت افزاری صورت میگیرد و هیچ روتینی برای آن اجرا نمیشود
      پاره ای از رویکردهای دفاعی

      دیدگاه


        #4
        پاسخ : نحوه ی کار pwm در avr (ساب روتین/سخت افزار) ؟

        سلام خدمت دوستان
        خیلی ممنون
        همیشه کامل توضیح بدهیم تا جواب کامل بگیریم.
        لطفا برای تشکر روی دکمه تشکر بزنید و بخاطر این پست نزنید که تایپیک شلوغ نشود
        تایپیک های من:
        حل تمام مشکلات atmega128a (eca.ir)
        آموزش کار با سایت (eca.ir)

        دیدگاه


          #5
          پاسخ : نحوه ی کار pwm در avr (ساب روتین/سخت افزار) ؟

          سلام خدمت دوستان
          اگر من از تایمر برای ایجاد pwm استفاده کنم دیگهه نمی تونم ازش به عنوان وقفه زن استفاده کنم؟ که مثلا با دادن پالسی به اونا وقفه بزنه و میکرو کارشو انجام بده؟
          میشه هم PWM کرد هم وقفه؟
          یا مثلا PWM رو متوقف کنم برای یه بازه ی زمانی مشخصی بعدش ازش به عنوان وقفه استفاده کنم و بعد دوباره برگردم به pwm؟
          ممنون دوستان
          همیشه کامل توضیح بدهیم تا جواب کامل بگیریم.
          لطفا برای تشکر روی دکمه تشکر بزنید و بخاطر این پست نزنید که تایپیک شلوغ نشود
          تایپیک های من:
          حل تمام مشکلات atmega128a (eca.ir)
          آموزش کار با سایت (eca.ir)

          دیدگاه


            #6
            پاسخ : نحوه ی کار pwm در avr (ساب روتین/سخت افزار) ؟

            نوشته اصلی توسط electromohammad نمایش پست ها
            سلام خدمت دوستان
            اگر من از تایمر برای ایجاد pwm استفاده کنم دیگهه نمی تونم ازش به عنوان وقفه زن استفاده کنم؟ که مثلا با دادن پالسی به اونا وقفه بزنه و میکرو کارشو انجام بده؟
            میشه هم PWM کرد هم وقفه؟
            یا مثلا PWM رو متوقف کنم برای یه بازه ی زمانی مشخصی بعدش ازش به عنوان وقفه استفاده کنم و بعد دوباره برگردم به pwm؟
            ممنون دوستان
            دوست عزیز
            مبحث وقفه با استفاده از تایمرها کمی متفاوت میباشد ....,وقفه ها روتین های کوچکی هستند که ما میتوانیم به واسطه های مختلف آنها را اجرا کنیم و یکی از رو.شهای اجرای این روتین ها وقایع تایمر کانتر ها میباشد .... در حقیقت در زمان کار تایمرها نیز امکان فعال کردن وقفه وجود دارد و در اکثر وقایعی که در تایمر اتفاق می افتد فعال کردن وقفه نیز منظور شده است ....مثلا میتوانیم نرم افزار خود را به شکلی تنطیم نماییم با سر ریز شدن هر یک از تایمرها وقفه مربوط به آن فعال گردد و یا به محض وقوع Compare Match وقفه مربوط به آن فعال شده و روتین موجود در آدرس حافظه تعریف شده اجرا گردد
            پاره ای از رویکردهای دفاعی

            دیدگاه


              #7
              پاسخ : نحوه ی کار pwm در avr (ساب روتین/سخت افزار) ؟

              سلام خدمت دوستان
              خیلی ممنون
              یعنی میشه وقفه ای که ما می خوایم بزنیم خارج از وقفه های PWM باشه و همزمان هم باشه؟
              آخه قراره یه سری کلید به وقفه و پایه های بررسی کننده وصل باشند. در همین زمان ممکنه برای کاری درحال استفاده از PWM باشم. اگه کلید فشرده بشه (بر فرض که مدارم درسته) وقفه زده میشه و با رفتن به ساب روتین اون وضعیت پایه ها تغییر می کنه
              یعنی پایه ی مربوط به وقفه تبدیل به خروجی منفی میشه و پایه های دیگه به ورودی (پول آپ) تبدیل می شوند، تا وضعیت کلید ها چک بشه.
              بعد مشکل من اینه که وقفه های PWM با وقفه های خارجی قاطی نشوند تا مشکل پیش نیاد.
              (به فرض سایر تایمر ها همشون مشغولند)
              شدنی هست؟
              ممنون
              همیشه کامل توضیح بدهیم تا جواب کامل بگیریم.
              لطفا برای تشکر روی دکمه تشکر بزنید و بخاطر این پست نزنید که تایپیک شلوغ نشود
              تایپیک های من:
              حل تمام مشکلات atmega128a (eca.ir)
              آموزش کار با سایت (eca.ir)

              دیدگاه


                #8
                پاسخ : نحوه ی کار pwm در avr (ساب روتین/سخت افزار) ؟

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

                دوست عزیز
                اولین نکته ای باید عرض کنم اینه که در سری Atmega در یک زمان فقط یک وقفه میتواند اجرا گردد و در اجرای وقفه ها نیز اولویتی در نظر گرفته نشده است که نبود بخش interrupt manager یا مدیریت وقفه از معایب بزرگ این سری از میکروکنترلرها به شمار میرود
                حال اگر کلیه تایمر کانترها مشغول باشند مشکلی در رابطه با اجراید وقفه داخلی یا خارجی وجود ندارد و وقفه ها نیز میتوانند اجرا گردند ولی اگر از وقفه های تایمر کانترها هم استفاده کرده باشید مشکل امکان اجرای هم زمان وقفه ها مطرح میگردد ....روزی هم رفته یکی از نکات کلیدی نوشتن روتین وقفه کوتاهی زمان اجرای آن میباشد و هیچگاه نباید عملیات طولانی در وقفه انجام گردد .... در مورد توجه به برخی نکات بسیار مهم میباشد به طور مثال در روتین وقفه یک ضرب در دو ساده را ممکن است با یک شیفت به چپ صورت داد ولی ضرب دو متغیر اعشاری ممکن است سبب از هم گسیختگی کل نرم افزار گردد .... اگر از وقفه های تایمر و و خارجی هم زمان استفاده میکنید باید امکان هم زمان شدن و بروز مشکل را در نظر داشته باشید ....دقت کنید تایمر کانترها برای تولید PWM اصلا نیازی به وقفه ندارند و به درستی کارشان انجام میدهند مگر برای حالتهای خاص در تایمر کانتر وقفه ای تعریف شده باشد
                پاره ای از رویکردهای دفاعی

                دیدگاه


                  #9
                  پاسخ : نحوه ی کار pwm در avr (ساب روتین/سخت افزار) ؟

                  سلام خدمت دوستان
                  خیلی ممنون
                  همیشه کامل توضیح بدهیم تا جواب کامل بگیریم.
                  لطفا برای تشکر روی دکمه تشکر بزنید و بخاطر این پست نزنید که تایپیک شلوغ نشود
                  تایپیک های من:
                  حل تمام مشکلات atmega128a (eca.ir)
                  آموزش کار با سایت (eca.ir)

                  دیدگاه

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