اطلاعیه

Collapse
No announcement yet.

چطور میتونم رو همه پایه های میکرو PWM داشته باشم

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

    چطور میتونم رو همه پایه های میکرو PWM داشته باشم

    سلام
    میخوام روی همه پایه های یه میکرو PWMهای مستقل داشته باشم
    فقط فرکانسش باید در حد 30 هرتز باشه ولی به عمکلرد برنامه زیاد آسیب نرسونه
    میشه؟
    آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

    116 کتابخانه مورد نیاز برای Altium Designer

    از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

    #2
    پاسخ : چطور میتونم رو همه پایه های میکرو PWM داشته باشم

    خوب نمیشه ولی میتونی خودت با set و reset کار کنی

    دیدگاه


      #3
      پاسخ : چطور میتونم رو همه پایه های میکرو PWM داشته باشم

      نوشته اصلی توسط reza javahery
      خوب نمیشه ولی میتونی خودت با set و reset کار کنی
      مرسی
      امتحان کردم به رد کار من نمیخوره
      یه چیزی دقیقا شبیه PWM میخوام
      آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

      116 کتابخانه مورد نیاز برای Altium Designer

      از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

      دیدگاه


        #4
        پاسخ : چطور میتونم رو همه پایه های میکرو PWM داشته باشم

        سلام سعی کن با استفاده از تایمرها بسازیش اولش با یک تایمر شروع کن ببین می تونی چندتا بسازی بعدش از تایمرهای دیگه هم استفاده کن
        معجزه اين است که هرچه داشته هايت را بيشتر با ديگران سهيم شوي،داراتر مي شوي (لئونارد نيموي)
        اگر مغزانسان،چنان ساده مي بود که ما از آن سر در مي آورديم،هنوز چنان احمق بوديم که هيچ از آن سر در نمي آورديم!
        آموزش Modelsim

        دیدگاه


          #5
          پاسخ : چطور میتونم رو همه پایه های میکرو PWM داشته باشم

          سلام
          من اینکار رو کردم
          فقط یه چیزی که هست فرکانس همه pwm هات باید یکی باشه. دقیقتر بگم میتونی سه دسته پایه pwm داشته باشی که فرکانس هر دسته یکیه اما d.c. اونا داره تغییر میکنه
          گفت که دیوانه نهی لایق این خانه نهی

          دیدگاه


            #6
            پاسخ : چطور میتونم رو همه پایه های میکرو PWM داشته باشم

            متشکرم
            حتی میشه تو سر ریز تایمرها به تعداد پایه ها متغییر تعریف کرد که دیوتی سایکلهای مختلف داشت
            اما همینطور که گفتم به درد کار من نمیخوره
            درواقع تا وقتی میخواد پرش کنه به سر ریز و متغییر رو عوض کنه و برگرده حلقه چند بار باید تکرار بشه که این کار جلو تکرار حلقه رو میگیره و برنامه به مشکل میخوره
            متوجه شدین؟
            آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

            116 کتابخانه مورد نیاز برای Altium Designer

            از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

            دیدگاه


              #7
              پاسخ : چطور میتونم رو همه پایه های میکرو PWM داشته باشم

              نوشته اصلی توسط masoud_m_bf
              متشکرم
              حتی میشه تو سر ریز تایمرها به تعداد پایه ها متغییر تعریف کرد که دیوتی سایکلهای مختلف داشت
              اما همینطور که گفتم به درد کار من نمیخوره
              درواقع تا وقتی میخواد پرش کنه به سر ریز و متغییر رو عوض کنه و برگرده حلقه چند بار باید تکرار بشه که این کار جلو تکرار حلقه رو میگیره و برنامه به مشکل میخوره
              متوجه شدین؟
              سلام
              بله شما می خواهید یک pwm داشته باشید که روی همه پایه ها اعمال بشه و هم دیوتی سایکلش عوض بشه خوب معلومه نمی شه دقیق ساختش اگر هم بتونید بسازیدش میکروی شما کار دیگه ای نمی تونه انجام بده و اگه بخواد یک کار دیگه بکنه pwm ها خراب می شن برای همین دوستمان هم گفتش که با فرکانس ثابت می شه ساختش همان طور که خودتان هم تجربه کردید تا بیاد متغیرها مقدار دهی بشوند کار خراب می شه
              معجزه اين است که هرچه داشته هايت را بيشتر با ديگران سهيم شوي،داراتر مي شوي (لئونارد نيموي)
              اگر مغزانسان،چنان ساده مي بود که ما از آن سر در مي آورديم،هنوز چنان احمق بوديم که هيچ از آن سر در نمي آورديم!
              آموزش Modelsim

              دیدگاه


                #8
                پاسخ : چطور میتونم رو همه پایه های میکرو PWM داشته باشم

                خب حداقل رو یه پورت چی؟
                8 تا PWM مختلفم نمیشه ساخت؟
                آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

                116 کتابخانه مورد نیاز برای Altium Designer

                از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

                دیدگاه


                  #9
                  پاسخ : چطور میتونم رو همه پایه های میکرو PWM داش&#1

                  این کد رو تست کردم جواب میده
                  یکم ناقص هست باید کامل بشه ولی اصل ماجرا رو برات نوشتم

                  unsigned char R=20,G=0,B=0;
                  unsigned char Pwm;

                  // Timer 0 overflow interrupt service routine
                  interrupt [TIM0_OVF] void timer0_ovf_isr(void)
                  {
                  if(Pwm==255)
                  Pwm=0;
                  if(Pwm==B)
                  PORTB.0=1;
                  else
                  PORTB.0=0;
                  if(Pwm==G)
                  PORTB.1=1;
                  else
                  PORTB.1=0;
                  if(Pwm==R)
                  PORTB.2=1;
                  else
                  PORTB.2=0;
                  Pwm++;
                  }

                  void main(void)
                  {
                  PORTB=0x00;
                  DDRB=0xFF;
                  // Timer/Counter 0 initialization
                  TCCR0=0x01;
                  TCNT0=0x00;
                  TIMSK=0x01;
                  #asm("sei&quot
                  while (1);
                  من این کد رو قبلا نوشته بودم برای کنترل LED RGB مقدار RGB درصد PWM هست.ولی وقتی حرف درصد می زنیم یعنی تا 100 اما اینجا تا 255 هست چون مقدار PWM از نوع unsigned char .
                  فرکانس موج حدود 122هرتز هست.
                  میتونی با تنظیم فرکانس تایمر اونو تغییر بدی.
                  این دستورات در روال تایمر نوشته شده و درصد کمی از CPU میکرو را برای کار اشغال میکنه.
                  با این روش می تونی کل پایه های میکرو رو PWM کنی. :nerd: oo:
                  دودمانم بر باد رفت

                  دیدگاه


                    #10
                    پاسخ : پاسخ : چطور میتونم رو همه پایه های میکرو PWM داش

                    نوشته اصلی توسط MKB
                    این کد رو تست کردم جواب میده
                    یکم ناقص هست باید کامل بشه ولی اصل ماجرا رو برات نوشتم

                    unsigned char R=20,G=0,B=0;
                    unsigned char Pwm;

                    // Timer 0 overflow interrupt service routine
                    interrupt [TIM0_OVF] void timer0_ovf_isr(void)
                    {
                    if(Pwm==255)
                    Pwm=0;
                    if(Pwm==B)
                    PORTB.0=1;
                    else
                    PORTB.0=0;
                    if(Pwm==G)
                    PORTB.1=1;
                    else
                    PORTB.1=0;
                    if(Pwm==R)
                    PORTB.2=1;
                    else
                    PORTB.2=0;
                    Pwm++;
                    }

                    void main(void)
                    {
                    PORTB=0x00;
                    DDRB=0xFF;
                    // Timer/Counter 0 initialization
                    TCCR0=0x01;
                    TCNT0=0x00;
                    TIMSK=0x01;
                    #asm("sei&quot
                    while (1);
                    من این کد رو قبلا نوشته بودم برای کنترل LED RGB مقدار RGB درصد PWM هست.ولی وقتی حرف درصد می زنیم یعنی تا 100 اما اینجا تا 255 هست چون مقدار PWM از نوع unsigned char .
                    فرکانس موج حدود 122هرتز هست.
                    میتونی با تنظیم فرکانس تایمر اونو تغییر بدی.
                    این دستورات در روال تایمر نوشته شده و درصد کمی از CPU میکرو را برای کار اشغال میکنه.
                    با این روش می تونی کل پایه های میکرو رو PWM کنی. :nerd: oo:
                    متشکرم
                    منم تقریبا همینجوری نوشته بودم
                    حالا بازم امتحان میکنم ضرری نداره
                    فقط یه سوال
                    تو شرطها(مثلا تو خط زیر) علامت نباید کوچیکتر یا بزرگتر باشه؟
                    if(Pwm==R)
                    آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

                    116 کتابخانه مورد نیاز برای Altium Designer

                    از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

                    دیدگاه


                      #11
                      پاسخ : چطور میتونم رو همه پایه های میکرو PWM داشته باشم

                      یه چیز دیگه یادم اومد
                      تو این روش زیر برنامه اینقدر طول میکشه که وسط اجرای زیر برنامه دوباره تایمر سر ریز میشه و همه چی بهم میریزه
                      و سر ریز رو هم از یه حدی بالاتر نمیشه برد دیگه
                      حالا پپیشنهادتون چیه؟
                      آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

                      116 کتابخانه مورد نیاز برای Altium Designer

                      از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

                      دیدگاه


                        #12
                        پاسخ : چطور میتونم رو همه پایه های میکرو PWM داشته باشم

                        بالا بردن کلاک میکرو تا 12 یا 16 مگاهرتز
                        الان چیز دیگه ای به زهنم نمیرسه :redface:
                        مگه این چند خط برنامه هست که حتی با کلاک 8 مگاهرتز هم که باشه دستور ها تموم نشه و دوباره سر ریز کنه؟؟؟؟ oo:
                        دودمانم بر باد رفت

                        دیدگاه


                          #13
                          پاسخ : چطور میتونم رو همه پایه های میکرو PWM داشته باشم

                          سلام فعلا با یکی از تایمر ها شروع کن ببین می تونی چندتا بسازی برای شروع فرکانس همه را یکی بگیر ببین تا چندتا می شه پیش رفت
                          معجزه اين است که هرچه داشته هايت را بيشتر با ديگران سهيم شوي،داراتر مي شوي (لئونارد نيموي)
                          اگر مغزانسان،چنان ساده مي بود که ما از آن سر در مي آورديم،هنوز چنان احمق بوديم که هيچ از آن سر در نمي آورديم!
                          آموزش Modelsim

                          دیدگاه


                            #14
                            پاسخ : چطور میتونم رو همه پایه های میکرو PWM داشته باشم

                            منم اینکارو کردم
                            دوتا M16 گذاشتم و 60 تا کانال PWM تولید کردم با فرکانس ثابت برای همه کانالها برای کنترل LEDRGB بود ارتباط سریال بین میکروها برای هم زمانی شون و ارتباط با کام کامپیوتر برای کنترل از طریق نرم افزار
                            خوب جواب داد ولی چون خروجی هام زیاد بود یکم از سرعت کم آوردم ولی قابل قبول بود در ضمن میکرو دیگه اصلا نمیتونه کاری انجام بده (اون موقع بود که فهمیدم که چقدر سرعت AVR کمه!)
                            [br /][hr]http://pcenter.ir[hr][br /]

                            دیدگاه


                              #15
                              پاسخ : چطور میتونم رو همه پایه های میکرو PWM داشته باشم

                              تا شنبه نیستم
                              شنبه میام و میشینم امتحان میکنم
                              مرسی از همگی
                              آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

                              116 کتابخانه مورد نیاز برای Altium Designer

                              از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

                              دیدگاه

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