اطلاعیه

Collapse
No announcement yet.

یک سوال ساده در مورد سرعت avr و مفهوم 16 مگابایت

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

    یک سوال ساده در مورد سرعت avr و مفهوم 16 مگابایت

    با سلام
    برنامه زیر را به زبان بیسیک را در نظر بگیرید
    کد:
    i=0
    do 
    
    incr i
    if i>200 000 then portb.0=1
    loop
    چقدر طول میکشد تا portb.0 روشن گردد
    در آزمایش من 19 ثانیه در میکرو روی برد و 17 ثانیه در پروتوس طول می کشید پس این 16 مگ کجای این avr است
    تنها موردي كه همه آدما يقين دارن خدا در حقش زیاد لطف کرده
    داشتن عقله زيادتر از دیگر آدم ها است

    #2
    پاسخ : یک سوال ساده در مورد سرعت avr و مفهوم 16 مگابایت

    مگا 16 یعنی حجم حافظه فلشش 16 کیلوه! و اینکه چقدر طول میکشه تا یه برنامه اجرا بشه بستگی به کامپایلر و زبان نوشته شده داره. فقط در صورتی که اسمبلی بنویسی یا فایل اسمبلی رو داشته باشی با شمارش تعداد دستورات که تقریبا اکثرشون توی یه سیکل اجرا می شن می تونی سرعت اجرای برنامه رو بدست بیاری

    دیدگاه


      #3
      پاسخ : یک سوال ساده در مورد سرعت avr و مفهوم 16 مگابایت

      با تشکر از شما
      منظور من از 16 مگابایت فرکانس کلاک میکرو بود
      کدی که من نوشتم خیلی ساده است لطف کنید ان آزمایش رو انجام داده و نتیجه اون را اعلام کنید تا بتونیم با برسی چند آزمایش به نتایجی برسیم
      در ضمن به نظر شما 000 200 دستور العمل در 19 ثانیه آیا خیلی به کامپایلر بستگی داره حالا یه ثانیه کمتر یا بیشتر طبیعه ولی با کلاک 16 مگ داخلی میکرو با ید در کسری از ثانیه انجام بشه
      من این حلقه رو تو ویندوز xp با vb.net نوشتم واقعا شگفت آور بود 000 000 000 2 دستور در 2 ثانیه ( دو میلیارد)
      تنها موردي كه همه آدما يقين دارن خدا در حقش زیاد لطف کرده
      داشتن عقله زيادتر از دیگر آدم ها است

      دیدگاه


        #4
        پاسخ : یک سوال ساده در مورد سرعت avr و مفهوم 16 مگابایت

        ببینین اینطوری نیست که مثلا مگا 16 - 16 مگا هرتز کلاک بگیره و مثلا مگا 128 - 128 مگا هرتز! :eek:
        در ثانی شما منبع کلاکت رو چی انتخاب کردی ؟ شاید از کلاک داخلی میکرو استفاده می کنی ؟! که یک مگا هرتزه! برای استفاده از اسیلاتور یا کریستال خارجی باید فیوز بیت های میکرو رو تغییر بدی. در حالت پیشفرض میکرو با کلاک داخلی یک مگاهرتز کار می کنه.
        این که شما گفتی 20000 تا در کسری از ثانیه مگه برنامه خطوط دیگه نداره ؟! یک افزایش داری یک شرط داری که همه توی اون 200000 بار انجام باید بشن.
        اینکه گفتی به کامپایلر بستگی داره یا نه . بله خیای بستگی داره . کامپایلر یه مترجمه! یه مترجم ممکنه با 10 کلمه منظور متن اصلی رو برسونه مترجم ناشی تر مثلا با 20 کلمه.!

        دیدگاه


          #5
          پاسخ : یک سوال ساده در مورد سرعت avr و مفهوم 16 مگابایت

          خوب من یه زحمت براتون دارم با هر روش که بهترینه و هر کامپایلر که عالیترینه و هر میکرو avr که قوی ترینه و با هر منبع کلاک که سریع ترین جواب رو میتونه بده شما این حلقه رو بنویسید و نتیجه رو اعلام کنید
          من که این عمل رو هم با کلاک داخلی هم با کلاک خارجی کریستالی و هم با RC انجام دادم که نتیجه رو نوشتم 19 ثانیه
          تازه اگر از کلاک داخلی یک مگ داخلی استفاده کنه با توجه به اینکه این میکرو مولتی تسکینگ که نیست از وقفه هم استفاده نکردیم پس باید در اون لحضه ای که حلقه رو اجرا میکنه فقط کلاک به حلقه تخصیص داده بشه
          تنها موردي كه همه آدما يقين دارن خدا در حقش زیاد لطف کرده
          داشتن عقله زيادتر از دیگر آدم ها است

          دیدگاه


            #6
            پاسخ : یک سوال ساده در مورد سرعت avr و مفهوم 16 مگابایت

            سلام
            این برنامه رو در عمل تست کردم حدودا 1 ثانیه طول میکشه.
            کد:
            $regfile = "m32def.dat"
            $crystal = 16000000
            Dim A As Long
            Config Pinc.0 = Output
            Do
            Incr A
            If A = 200000 Then Portc.0 = 1
            Loop
            End
            گسترده تر از هر چیز دل مومن است(امام علی (ع))
            [glow=red,2,300]R[/glow]
            [glow=green,2,300]G[/glow]
            [glow=blue,2,300]B[/glow]

            دیدگاه


              #7
              پاسخ : یک سوال ساده در مورد سرعت avr و مفهوم 16 مگابایت

              توی AVR های معمولی سری MEGA ( یعنی XMEGA رو کاری ندارم ) تا اونجا که من اطلاع دارم بیشترین فرکانسی که بدون مشکل ساپورت میکنند بیست مگاهرتز هست، یعنی در یک ثانیه میتونید بیست میلیون دستورالعمل اسمبلی اجرا کنید، در نتیجه در دوثانیه میتونید 40 میلیون دستورالعمل اجرا کنید ( دستورالعمل اسمبلی )، حالا این برنامه شما شرط درونش هست و باید تعدادی از دستورالعمل ها شرطی باشند و از اونجا که دستورالعمل های شرطی معمولا درون دو یا سه سیکل اجرا میشند تعداد دستورالعمل هایی که اجرا میشه مقداری کمتر از 20 میلیون هست. ( مثلا ATMEGA168 میتونه با 20 مگاهرتز کار کنه )
              شما اگر سرعت بالایی نیاز دارید و میخواید از حداکثر سرعت ممکن استفاده کنید باید از اسمبلی استفاده کنید که بتونید فقط دستورات لازم رو اجرا کنید و چیزی اضافه اجرا نشه که وقت رو هدر بده، این برنامه ای که شما با بیسیک نوشتید به اسمبلی که تبدیل بشه به احتمال خیلی زیاد اونقدرا خوب ترجمه نمیشه که در کمترین زمان ممکن انجام بشه، باید خودتون روش فکر کنید و با اسمبلی طوری این حلقه رو بنویسید که در کمترین زمان ممکن این کار انجام بشه )
              از آنجا که گاهی فرصت بازخوانی پست نیست، بابت غلط های املایی و نگارشی احتمالی معذرت میخوام.
              هیچیک از پاسخ هایی که میدم را کاملا تایید نمیکنم و ممکن هست اشتباه کرده باشم، اگر من به نوشته ام مطمئن هستم شما مشکوک باشید.
              اگر در حل مشکل من کمک کردید و دکمه تشکر رو نزدم حتما فراموش کردم کوچکترین کمک شما برایم ارزشمند است!
              اگر به هر طریقی از من ناراحت شدید حتما با یک پیام خصوصی تذکر بدهید تا مشکل رو حل کنیم و رابطه ی صمیمانه، پایدار بماند.
              شاد و موفق باشید

              دیدگاه


                #8
                پاسخ : یک سوال ساده در مورد سرعت avr و مفهوم 16 مگابایت

                کد:
                #include <mega32.h>
                long int a=0;
                
                void main(void)
                {
                PORTC=0x00;
                DDRC=0x30;
                
                
                while (1)
                   {    a++; 
                   PORTC.5=0;
                      if(a==200000)
                      {PORTC.5=1;
                      break;
                      } 
                      
                   };
                }

                با پروتیوس 12 ثانیه :wow:
                در واقیت کمتر از 12
                هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

                تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

                دیدگاه


                  #9
                  پاسخ : یک سوال ساده در مورد سرعت avr و مفهوم 16 مگابایت


                  کد:
                  #include <mega32.h>
                  long int a=0;
                  
                  void main(void)
                  {
                  PORTC=0x00;
                  DDRC=0x30;
                  
                  
                  while (1)
                     {    a++; 
                     PORTC.5=0;
                        if(a==200000)
                        {PORTC.5=1;
                        break;
                        } 
                        
                     };
                  }

                  با پروتیوس 12 ثانیه :wow:
                  در واقیت کمتر از 12

                  دوستان شرایط تقریبا یکسانه
                  میشه مقایسه کرد

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

                  تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

                  دیدگاه


                    #10
                    پاسخ : یک سوال ساده در مورد سرعت avr و مفهوم 16 مگابایت

                    دوستان یادم نبود با 32L امتحان کردم

                    با مگا 32 معمولی 9~10 ثانیه
                    هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                    بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                    میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

                    تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

                    دیدگاه


                      #11
                      پاسخ : یک سوال ساده در مورد سرعت avr و مفهوم 16 مگابایت

                      نوشته اصلی توسط n340
                      دوستان یادم نبود با 32L امتحان کردم

                      با مگا 32 معمولی 9~10 ثانیه
                      10~9 ثانیه؟؟؟؟؟؟؟؟؟؟؟؟
                      با کریستال 16m واسه من 1 ثانیه شد.
                      البته mega32 معمولی بود.
                      گسترده تر از هر چیز دل مومن است(امام علی (ع))
                      [glow=red,2,300]R[/glow]
                      [glow=green,2,300]G[/glow]
                      [glow=blue,2,300]B[/glow]

                      دیدگاه


                        #12
                        پاسخ : یک سوال ساده در مورد سرعت avr و مفهوم 16 مگابایت

                        دوستان لطفا درست مشخص بکنید دنبال چی هستید تا بتونیم درست بحث کنیم، توی زبان های سطح بالا و کامپایلرها واحدی به نام دستورالعمل در ثانیه بی معنی هست، وقتی میگند تراشه ای اینقدر دستورالعمل در ثانیه انجام میده منظور دستورالعمل های اسمبلی هست نه C یا بیسیک.
                        از آنجا که گاهی فرصت بازخوانی پست نیست، بابت غلط های املایی و نگارشی احتمالی معذرت میخوام.
                        هیچیک از پاسخ هایی که میدم را کاملا تایید نمیکنم و ممکن هست اشتباه کرده باشم، اگر من به نوشته ام مطمئن هستم شما مشکوک باشید.
                        اگر در حل مشکل من کمک کردید و دکمه تشکر رو نزدم حتما فراموش کردم کوچکترین کمک شما برایم ارزشمند است!
                        اگر به هر طریقی از من ناراحت شدید حتما با یک پیام خصوصی تذکر بدهید تا مشکل رو حل کنیم و رابطه ی صمیمانه، پایدار بماند.
                        شاد و موفق باشید

                        دیدگاه


                          #13
                          پاسخ : یک سوال ساده در مورد سرعت avr و مفهوم 16 مگابایت

                          نوشته اصلی توسط Study
                          دوستان لطفا درست مشخص بکنید دنبال چی هستید تا بتونیم درست بحث کنیم، توی زبان های سطح بالا و کامپایلرها واحدی به نام دستورالعمل در ثانیه بی معنی هست، وقتی میگند تراشه ای اینقدر دستورالعمل در ثانیه انجام میده منظور دستورالعمل های اسمبلی هست نه C یا بیسیک.
                          دوست عزیز از بیسیک که به هکز یکراست تبدیل نمیشه اول به اسمبلی بعد به هگز
                          برا سی هم همین منواله
                          اول به اسمبلی بعد هگز

                          خوب تعداد سیکل ها به دستورات اسمبلی برمیگردی
                          حالا میشه دید که دوم زبون (سی یا بیسیک ) نزدیکتر و راحتر به اسمبلی تبدیل میشه

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

                          تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

                          دیدگاه


                            #14
                            پاسخ : یک سوال ساده در مورد سرعت avr و مفهوم 16 مگابایت

                            با تشکر از
                            دوستان حالا تکلیف من چی 19 ثانیه با 9 ثانیه و 9 ثانیه با 1 ثانیه خیلی متفاوت

                            شما با کلاک 16 مگ و دستور یه افزایش و یه شرط و یک پرش به حداکثر3 کلاک احتایج دارید ( البته من اسمبلی میکرو رو وقت نکردم مطالعه کنم ولی تو پی سی این طوریه) داریم

                            16000000/3 مساوی میشه با 5/3 میلیون
                            حال نخواستیم 4 میلیون شو همون یک میلیون برام کافی ولی دویست هزار تو 10 ثانیه فقط به درد چشمک زن میخوره مثلا کنترل براش لس موتور و کنترل استپ موتور به فرکانس دویست هزار نیاز داره تاز با کلی دستور می خوام برام ثابت بشه که اتمل کلاه بردار نیست oo:

                            واقعا سریع ترین پروژه رو که با میکرو دیدی چیه به کلاک بالا احتیاج داره چند مورد مثال بزنید
                            تنها موردي كه همه آدما يقين دارن خدا در حقش زیاد لطف کرده
                            داشتن عقله زيادتر از دیگر آدم ها است

                            دیدگاه


                              #15
                              پاسخ : یک سوال ساده در مورد سرعت avr و مفهوم 16 مگابایت

                              آقا این برنامه ای که شما به بیسیک نوشتید را تست کردم کمتر از 1 ثانیه اجرا می شود من خیلی با avr کار کردم و برای برنامه نویسی هم از بسکام استفاده می کنم و هیچ وقت هم مشکل سرعت نخوردم و همیشه هم از 8 مگ داخلی استفاده کردم به غیر از جایی که تایمینگ دقیق برام مهم بوده. ولی تا به حال هیچ مشکل سرعتی نداشتم شما احتمالا یک اشتباه فاحش کردید فرکانس داخل برنامه فرکانس کاری میکرو را تنظیم نمی کند بلکه برای فهماندن به کامپایلر است که تایمینگ خود را با فرکانس میکرو هماهنگ کند شما هم فرکانس داخل کامپایلر و هم فرکانسی که در عمل به میکرو میدی را یکی انتخاب کن و از سرعت خارق العاده avr لذت ببر من هم با 8051 و هم با پیک کار کردم و هیچ کدوم سرعت avr را ندارند مطمئن باش.
                              همانطور كه مايل نيستم بنده كسي باشم، حاضر نيستم آقاي كسي باشم. كساني كه مخالف آزادي ديگرانند، خود لياقت آزادي را ندارند.((آبراهام لينكن))

                              قدرت شگفت انگيز نيروهاي خلاق و استعدادهاي نهفته آدمي هنگامي آشكار مي شود كه نيازي حياتي، تواناييهاي او را به فعاليت وادارد و كشش آرزويي، سراپاي وجودش را به جنب و جوش درآورد.((آبراهام لينكن))

                              [img width=343 height=100]http://www.elecdesigner.com/uploads/PRO-DESIGNER-GROUP.jpg[/img]

                              دیدگاه

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