اطلاعیه

Collapse
No announcement yet.

تولید پالس PWM بر روی پایه دلخواه بدون استفاده از تایمر در مد PWM

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

    #16
    پاسخ : تولید پالس PWM بر روی پایه دلخواه بدون استفاده از تایمر در مد PWM

    نوشته اصلی توسط حمیدجان
    اما برای بقیه ی پایه ها باید از دستور (PORTx=~PORTx) استفاده کنیم.
    سلام دوست عزیز
    مثلا من میخوام روی پورت d.5 یا هر پورتی دیگه پالس pwm داشته باشم چیکار باید بکنم ؟؟؟
    با بسکام کار میکنم
    pwm بلدم بسازم فقط نمیدونم چجوری روی بقیه پورتها بندازم
    بچه بودم غصه وبالم نبود هيچكي حريفه شوروحالم نبود
    بچه كه بودم آسمون آبي بود حتي شباي ابري مهتابي بود

    دیدگاه


      #17
      پاسخ : تولید پالس PWM بر روی پایه دلخواه بدون استفاده از تایمر در مد PWM

      توی این تاپیک من با C این کارو کردم ولی با بیسیک هم کاری نداره
      ببینید متوجه میشید چیکار باید کرد

      درایور شبکه و nRF24L01
      کاتالوگ محصولات
      کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
      شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
      فروش اسيلوسکوپ GWinstek GOS-630FC

      دیدگاه


        #18
        پاسخ : تولید پالس PWM بر روی پایه دلخواه بدون استفاده از تایمر در مد PWM

        نوشته اصلی توسط بسطام بیرامی
        توی این تاپیک من با C این کارو کردم ولی با بیسیک هم کاری نداره
        ببینید متوجه میشید چیکار باید کرد
        دوست عزیز لطف کردی ولی من از اون تاپیک چیزی نفهمیدم
        حداقل کد c رو بزار من خودم تبدیل میکنم مرسی
        بچه بودم غصه وبالم نبود هيچكي حريفه شوروحالم نبود
        بچه كه بودم آسمون آبي بود حتي شباي ابري مهتابي بود

        دیدگاه


          #19
          پاسخ : تولید پالس PWM بر روی پایه دلخواه بدون استفاده از تایمر در مد PWM

          نوشته اصلی توسط arf2010
          دوست عزیز لطف کردی ولی من از اون تاپیک چیزی نفهمیدم
          حداقل کد c رو بزار من خودم تبدیل میکنم مرسی
          خب مگه توی اون تاپیک کد چی بود؟!
          با C نوشته بودم دیگه
          PORTD.0 = PINB.3;
          PORTD.1 = PINB.3 ;
          PORTD.2 = PINB.3 ;
          PORTD.3 = PINB.3 ;
          PORTD.4 = PINB.3 ;
          PORTD.5 = PINB.3 ;
          PORTD.6 = PINB.3 ;
          PORTD.7 = PINB.3 ;
          ببین OCR2 برای مثال وقتی مقداری بش میدی برای PWM میاد و اونو میریزه روی پایه PINB.3 خب من آمدم پایه هایی که میخواستمو
          با این پایه مساوی قرار دادم
          مثلا توی برنامه بالا همه پایه های پورت D مثل PB3 موج PWM تولید میکنن
          با تغییر OCR2 همه پایه ها PWM شون عوض میشه
          به همین سادگی
          درایور شبکه و nRF24L01
          کاتالوگ محصولات
          کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
          شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
          فروش اسيلوسکوپ GWinstek GOS-630FC

          دیدگاه


            #20
            پاسخ : تولید پالس PWM بر روی پایه دلخواه بدون استفاده از تایمر در مد PWM

            دوست عزیز خیلی ممنون
            ولی من میخوام که روی هر پورتی که خواستم pwm جداگانه داشته باشم و تازه این کدی که نوشتی هم کار نمیکنه چون اصلا درست نیست این کد
            بچه بودم غصه وبالم نبود هيچكي حريفه شوروحالم نبود
            بچه كه بودم آسمون آبي بود حتي شباي ابري مهتابي بود

            دیدگاه


              #21
              پاسخ : تولید پالس PWM بر روی پایه دلخواه بدون استفاده از تایمر در مد PWM

              نوشته اصلی توسط arf2010
              دوست عزیز خیلی ممنون
              ولی من میخوام که روی هر پورتی که خواستم pwm جداگانه داشته باشم و تازه این کدی که نوشتی هم کار نمیکنه چون اصلا درست نیست این کد
              از درست بودنش که 100% اطمینان دارم چون تست کردم هم توی شبیه ساز هم روی برد واقعی مگا 8 کار کرده
              برنامه کاملشو میذارم مشکلت با اونه :agree:

              و این که شما میخوای روی هر پورتی PWM متفاوتی داشته باشی با سوالی که پرسیدی

              مثلا من میخوام روی پورت d.5 یا هر پورتی دیگه پالس pwm داشته باشم چیکار باید بکنم ؟؟؟
              با بسکام کار میکنم
              pwm بلدم بسازم فقط نمیدونم چجوری روی بقیه پورتها بندازم
              با این که میگید PWM متفاوت فرق داره :biggrin:
              PWM متفاوتو یا باید با تایمر تولید بشه یا همینطور که دوستان فرمودن یه تایمرو اختصاص بدی به شمارش
              و وقتی به مقدار خاصی رسید شرط بذاری برای 0 و 1 کردن پایه هایی که دوس داری
              این برنامه رو هم من نوشتم و تست کردم برای کنترل نور LED RGB پروژشم دارم
              اینجا رو هم ببین :
              http://www.eca.ir/forum2/index.php?t...2647#msg392647
              درایور شبکه و nRF24L01
              کاتالوگ محصولات
              کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
              شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
              فروش اسيلوسکوپ GWinstek GOS-630FC

              دیدگاه


                #22
                پاسخ : تولید پالس PWM بر روی پایه دلخواه بدون استفاده از تایمر در مد PWM

                سلام و عرض ادب
                من دارم یه پروژه برای پروژکتور RGB طراحی میکنم با میکروی AVR توسط تکنیک pwm (درایور از نوع سوئیچینگ).
                من توسط حالت frequency phase correct در تایمر 1 تونستم دو موج خیلی دقیق توسط OC1A و OC1B در بیارم (در فرکانس 120 هرتز) و موندم توی موج سوم که چطوری در بیارم
                میتونم موج سوم را توسط تایمر صفر قسمت correct pwm در بیارم ولی یه مشکلی هست این وسط
                ظبق آموزش هایی که دیدم دلیل برتری خالت frequency phase correct از حالت correct pwm این است که در حالت اول پدیت مقایسه گر نسبت به شمارش در اول کار ( منظور TCNT) می باشد ولی حالت دوم در آخر کار ( منظور TOP) مقایسه گر را با شمارشگر پدیت میکنه و عیب حالت دوم وقتی که سریع مقایسه گر عدد های متفاوتی به خودش میگیره ایجاد هارمونیک های فرد 3 تا 11 که به شدت منجر به اختلالات و نوسانات مداری و سیستمی (فیدبک دار) میگردد.
                حالا با تفاسیر فوق دوستان و متخصصان عزیز راهی را پیشنهاد میکنن که من بتونم موج سوم را خیلی دقیق بدون هارمونیک در بیارم.
                البته من حالت مثلا PORTA.0=~PORTA.0 همون TOGGLE کردن را امتحان کردم و خوب جواب نگرفتم.
                ممنون میشم اگه یه جواب خوب از دوستان بگیرم چون خیلی سایت ها را گشتم و موردی در این نظر در سایتشون نداشتن.

                دیدگاه

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