اطلاعیه

Collapse
No announcement yet.

پرسرعت ترین AVR کدومه؟

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

    #31
    پاسخ : پرسرعت ترین AVR کدومه؟

    نوشته اصلی توسط Rohalamin
    هیچ! تقریبا بیشتر کامپایلرهایی که AVR رو ساپورت میکنن، سری XMEGA رو هم پشتیبانی میکنن. فقط چند موضوع ساده هستش که مثلا برای تعیین کلاک میکرو مثلا باید یه دو-سه موضوع رو یاد بگیری(مراجعه کنید به قسمت XMEGA تا اطلاعات لازم دستتون بیاد).
    البته من نمی دونم کار شما دقیقا چیه ولی خب بعضی بچه ها ایده استفاده از اسمبلی رو دادن که من زیاد موافق نیستم. حالا چراش یه بحث گسترده داره که من کار با میکرو بالاتر رو ترجیح میدم. ولی اگه خواستین بگین که کارتون چیه تا اگه ایده ای داریم براتون توضیح بدیم.
    ممنونم باشه دیگه میریم تو خط xmega فقط قیمت پروگرمرش زیاده من یکی دیدم 60 تومن ارزون تر سراغ ندارین بابا من قشر مستضعفیم
    hi miami

    دیدگاه


      #32
      پاسخ : پرسرعت ترین AVR کدومه؟

      نوشته اصلی توسط DDR3
      این کد رو در نظر بگیرید (بیسیک)
      کد:
      Dim Tb1 As Byte
      Config Porta = Output
      Tb1 = 255
      Do
      Incr Tb1
      Porta = Tb1
      Loop
      End
      کد معادل ایجاد شده توسط کامپایلر
      کد:
      +0000005F:  E0A1    LDI    R26,0x01    Load immediate
      +00000060:  E0B1    LDI    R27,0x01    Load immediate
      +00000061:  918C    LD    R24,X     Load indirect
      +00000062:  5F8F    SUBI   R24,0xFF    Subtract immediate
      +00000063:  938C    ST    X,R24     Store indirect
      +00000064:  E0A1    LDI    R26,0x01    Load immediate
      +00000065:  E0B1    LDI    R27,0x01    Load immediate
      +00000066:  918C    LD    R24,X     Load indirect
      +00000067:  BB8B    OUT    0x1B,R24    Out to I/O location
      +00000068:  940C005F  JMP    0x0000005F   Jump
      حالا همین کد با ترکیب اسمبلی با همون کامپایلر

      کد:
      Config Porta = Output
      $asm
      LDI R16,1
      LDI R17,255
      Lop1:
      ADD R17,R16
      Out Porta , R17
      JMP LOP1
      $end Asm
      کد ایجاد شده توسط کامپایلر

      کد:
      +0000005E:  0F10    ADD    R17,R16    Add without carry
      +0000005F:  BB1B    OUT    0x1B,R17    Out to I/O location
      +00000060:  940C005E  JMP    0x0000005E   Jump
      واضح هست که حجم کد چقدر تفاوت داره
      در حالت اول 15 سیکل برای یکبار اجرا
      در حالت دوم 5 سیکل
      البته مقدار دهی اولیه چون تکرار نمیشه حساب نشده

      این یه مثال سر انگشتی بود فقط جهت نمایش تفاوت ، دلایلی زیادی داره که از حوصله بحث خارجه که چرا اینقدر تفاوت هست
      موفق باشید
      بله، شک نکنید که با اسمبلی کار کردن میشه سرعت کار رو در بازه سرعتی همون میکرو جلو برد ولی این مربوط به مبحث اوپتیمایز هستش(بهینه کردن)(چون سرعت نمی تونی بالا ببری و فقط همون طور که گفتم در بازه سرعتی همون میکرو بهتر میشه). در نصف موارد دیگه خود میکرو جواب گو نیست. مثلا نرخ اطلاعات ارسالی که یکی از مهمترین مباحث هستش.
      نوشته اصلی توسط pesare shoja
      ممنونم باشه دیگه میریم تو خط xmega فقط قیمت پروگرمرش زیاده من یکی دیدم 60 تومن ارزون تر سراغ ندارین بابا من قشر مستضعفیم
      فکر کنم هدر برد این میکرو نمونه 128 پروگرمر نمی خواد چون توی میکرو بوت لودر ریختن که با USB کار میکنه(پروگرمر هم کمتر از 50 تومن پیدا نمی کنی). من نمی دونم شما چقدر فرصت دارید واسه کارتون وگرنه اصلا XMEGA رو پیشنهاد نمی دادم چون استفاده از XMEGA توی کشور ما و حتی خود امریکا کاملا اشتباهه.

      دیدگاه


        #33
        پاسخ : پرسرعت ترین AVR کدومه؟

        سلام
        یه سوال
        من با مگا32 وکریستال27 تونستم عکس رو از mmc بخونم و رو ان96 نشونش بدم ولی سرعت نمایشش برا هر عکس حدود 10ثانیه طول میکشه که خیییییلی زیاده :cry: قبلا که کریستال 16 رو بهش وصل کرده بودم مدت زمان نمایش 15ثانیه بود که با کریستال27 تونستم 5ثانیه کاهشش بدم :mrgreen:
        به نظر شما راه دیگه ای هم هست که بشه سرعت نمایش رو بازم کمترش کرد؟ :-?
        با تشکر
        سلام
        کد شما خیلی غیر بهینه است
        با PIC و سرعت 10 MIPs حدود نیم ثانیه طول میکشه نمایش یه عکس کامل از SD

        [glow=black,2,300]بردی جالب با سیستم عاملی جالب !!![/glow]

        دیدگاه


          #34
          پاسخ : پرسرعت ترین AVR کدومه؟

          نوشته اصلی توسط abbasmh
          سلام
          کد شما خیلی غیر بهینه است
          با PIC و سرعت 10 MIPs حدود نیم ثانیه طول میکشه نمایش یه عکس کامل از SD
          دوست عزیز من دارم بصورت مستقیم خود عکس bmp رو از mmc میخونما :rolleyes:
          هر چند پیر و خسته دل و ناتوان شدم * * * هر گه که یاد تو کردم جوان شدم :rolleyes:

          دیدگاه


            #35
            پاسخ : پرسرعت ترین AVR کدومه؟

            دوست عزیز من دارم بصورت مستقیم خود عکس bmp رو از mmc میخونما :rolleyes:
            منم دارم عکس رو از SD می خونم و نمایش میدم ولی فرمت بیت های رنگ رو کمی دستکاری کردم
            اگرم بخوام مستقیم خود BMP رو نمایش بدم بازم به یک ثانیه نمیرسه

            (البته اینو در نظر بگیرید که کتابخونه FAT رو خودم نوشتم و از چند خط اسمبلی هم قاطیش کردم :mrgreen
            http://www.eca.ir/forum2/index.php?topic=37852.0

            [glow=black,2,300]بردی جالب با سیستم عاملی جالب !!![/glow]

            دیدگاه


              #36
              پاسخ : پرسرعت ترین AVR کدومه؟

              نوشته اصلی توسط abbasmh
              منم دارم عکس رو از SD می خونم و نمایش میدم ولی فرمت بیت های رنگ رو کمی دستکاری کردم
              اگرم بخوام مستقیم خود BMP رو نمایش بدم بازم به یک ثانیه نمیرسه

              (البته اینو در نظر بگیرید که کتابخونه FAT رو خودم نوشتم و از چند خط اسمبلی هم قاطیش کردم :mrgreen
              http://www.eca.ir/forum2/index.php?topic=37852.0
              ببینید من از کد زیر برای نمایش مستقیم bmp استفاده کردم البته بعد از f_mountوf_openوf_lseek:
              کد:
              for(i=319;i>-1;i--)
              {
              	for(j=239;j>-1;j--)
              	{
              		blue = fgetc(&file);
              		green = fgetc(&file);
              		red = fgetc(&file);
                       col = RGB2COL(red,green,blue);
              		lcd_write_pixel(239-j,i,col);
              			
              	}
              }
              هر چند پیر و خسته دل و ناتوان شدم * * * هر گه که یاد تو کردم جوان شدم :rolleyes:

              دیدگاه


                #37
                پاسخ : پرسرعت ترین AVR کدومه؟

                لطفا یه راهنمایی بکنید تا ایشالا مشکل منم حل شه :rolleyes:
                هر چند پیر و خسته دل و ناتوان شدم * * * هر گه که یاد تو کردم جوان شدم :rolleyes:

                دیدگاه


                  #38
                  پاسخ : پرسرعت ترین AVR کدومه؟

                  نوشته اصلی توسط Rohalamin
                  بله، شک نکنید که با اسمبلی کار کردن میشه سرعت کار رو در بازه سرعتی همون میکرو جلو برد ولی این مربوط به مبحث اوپتیمایز هستش(بهینه کردن)(چون سرعت نمی تونی بالا ببری و فقط همون طور که گفتم در بازه سرعتی همون میکرو بهتر میشه). در نصف موارد دیگه خود میکرو جواب گو نیست. مثلا نرخ اطلاعات ارسالی که یکی از مهمترین مباحث هستش.فکر کنم هدر برد این میکرو نمونه 128 پروگرمر نمی خواد چون توی میکرو بوت لودر ریختن که با USB کار میکنه(پروگرمر هم کمتر از 50 تومن پیدا نمی کنی). من نمی دونم شما چقدر فرصت دارید واسه کارتون وگرنه اصلا XMEGA رو پیشنهاد نمی دادم چون استفاده از XMEGA توی کشور ما و حتی خود امریکا کاملا اشتباهه.
                  حرف شما درسته ، اما این مورد رو طبق صحبتهای قبلی مثال زدم که تا یه کاری صحبتش میشه و سرعت کم هست ، سریع نگیم فرکانس رو ببریم بالا یا میکرو رو عوض کنیم
                  اینا پیش فرض ها هست که حتما بایستی اول جواب بگیری بعد اگر نشد بری سراغ تعویض فرکانس یا میکرو
                  همیشه به یاد خدا باش !

                  دیدگاه


                    #39
                    پاسخ : پرسرعت ترین AVR کدومه؟

                    شما اول باید هدف اصلیتون رو مشخص کنید بعد تصمیم بگیرید که به چه سرعتی نیاز دارید
                    به هر حال:
                    این کد شماست
                    کد:
                    for(i=319;i>-1;i--)
                    {
                    	for(j=239;j>-1;j--)
                    	{
                    		blue = fgetc(&file);
                    		green = fgetc(&file);
                    		red = fgetc(&file);
                             col = RGB2COL(red,green,blue);
                    		lcd_write_pixel(239-j,i,col);
                    			
                    	}
                    }
                    من دقیقا محتوای این روال ها رو نمی دونم ولی
                    اولا چرا عکس رو پیکسل به پیکسل نشون می دید؟(توی خرید هم عمده بخرید ارزونتر درمیاد :mrgreen
                    شما بیا با دستور ها و روالهای مربوط به ال سی دی یه مستطیل از ال سی دی انتخاب کن بعد تک تک توش رنگ بریز این کار باعث میشه که حدودا شاید سرعت برنامت دو برابر بشه
                    دوما مگه ال سی دی 16 بیت رنگ نداره؟ پس چرا داری سه بایت یا 24 بیت رنگ از SD می خونی؟ مگه عکس رو 24 بیتی ذخیره کردی؟ 16 بیتی ذخیره کن. این کارم باعث حدود 20 درصد بهبود سرعت می شه
                    در آخر بیشترین چیزی که وقت رو میکشه روال های کار با FAT توی کارت های حافظه هست که اگه درست با کمی اسمبلی قاطیش این روال ها رو بنویسد سرعتش حداقل دو برابر کتابخونهای SD کامپایلرا می شه (البته نوشتن کتابخونه برای FAT خودش یه پروژه سنگین هست)
                    موفق باشید
                    :bye

                    [glow=black,2,300]بردی جالب با سیستم عاملی جالب !!![/glow]

                    دیدگاه


                      #40
                      پاسخ : پرسرعت ترین AVR کدومه؟

                      نوشته اصلی توسط abbasmh
                      من دقیقا محتوای این روال ها رو نمی دونم ولی
                      اولا چرا عکس رو پیکسل به پیکسل نشون می دید؟(توی خرید هم عمده بخرید ارزونتر درمیاد :mrgreen
                      شما بیا با دستور ها و روالهای مربوط به ال سی دی یه مستطیل از ال سی دی انتخاب کن بعد تک تک توش رنگ بریز این کار باعث میشه که حدودا شاید سرعت برنامت دو برابر بشه
                      دوما مگه ال سی دی 16 بیت رنگ نداره؟ پس چرا داری سه بایت یا 24 بیت رنگ از SD می خونی؟ مگه عکس رو 24 بیتی ذخیره کردی؟ 16 بیتی ذخیره کن. این کارم باعث حدود 20 درصد بهبود سرعت می شه
                      در آخر بیشترین چیزی که وقت رو میکشه روال های کار با FAT توی کارت های حافظه هست که اگه درست با کمی اسمبلی قاطیش این روال ها رو بنویسد سرعتش حداقل دو برابر کتابخونهای SD کامپایلرا می شه (البته نوشتن کتابخونه برای FAT خودش یه پروژه سنگین هست)
                      موفق باشید
                      :bye
                      با تشکر از راهنماییتون
                      ببینم چیکار میتونم بکنم :read: :rolleyes:
                      هر چند پیر و خسته دل و ناتوان شدم * * * هر گه که یاد تو کردم جوان شدم :rolleyes:

                      دیدگاه


                        #41
                        پاسخ : پرسرعت ترین AVR کدومه؟

                        نوشته اصلی توسط abbasmh
                        شما اول باید هدف اصلیتون رو مشخص کنید بعد تصمیم بگیرید که به چه سرعتی نیاز دارید
                        به هر حال:
                        این کد شماست
                        کد:
                        for(i=319;i>-1;i--)
                        {
                        	for(j=239;j>-1;j--)
                        	{
                        		blue = fgetc(&file);
                        		green = fgetc(&file);
                        		red = fgetc(&file);
                                 col = RGB2COL(red,green,blue);
                        		lcd_write_pixel(239-j,i,col);
                        			
                        	}
                        }
                        من دقیقا محتوای این روال ها رو نمی دونم ولی
                        اولا چرا عکس رو پیکسل به پیکسل نشون می دید؟(توی خرید هم عمده بخرید ارزونتر درمیاد :mrgreen
                        شما بیا با دستور ها و روالهای مربوط به ال سی دی یه مستطیل از ال سی دی انتخاب کن بعد تک تک توش رنگ بریز این کار باعث میشه که حدودا شاید سرعت برنامت دو برابر بشه
                        دوما مگه ال سی دی 16 بیت رنگ نداره؟ پس چرا داری سه بایت یا 24 بیت رنگ از SD می خونی؟ مگه عکس رو 24 بیتی ذخیره کردی؟ 16 بیتی ذخیره کن. این کارم باعث حدود 20 درصد بهبود سرعت می شه
                        در آخر بیشترین چیزی که وقت رو میکشه روال های کار با FAT توی کارت های حافظه هست که اگه درست با کمی اسمبلی قاطیش این روال ها رو بنویسد سرعتش حداقل دو برابر کتابخونهای SD کامپایلرا می شه (البته نوشتن کتابخونه برای FAT خودش یه پروژه سنگین هست)
                        موفق باشید
                        :bye
                        مهندس جان یه توضیح میدی چجوری 16بیتی از MMC بخونم :redface: :rolleyes:
                        با تشکر فراوان
                        هر چند پیر و خسته دل و ناتوان شدم * * * هر گه که یاد تو کردم جوان شدم :rolleyes:

                        دیدگاه


                          #42
                          پاسخ : پرسرعت ترین AVR کدومه؟



                          برای اینکه بتونی 16 بیتی عکس رو از حافظه بخونی باید اول 16 بیتی ذخیرش کنی
                          برای این که 16 بیتی ذخیره بشه باید عکس رو ببری توی فوتوشاپ و بعد گزینه Save As و فرمت ذخیره رو بزار BMP و بعد گزینه Save رو بزن
                          یه پنجره دیگه برای انتخاب روش ذخیره BMP باز میشه مثل این



                          مد رو بزار 16 بیتی و بعد گزینه Advance mode رو بزن نوع ذخیره رو بزار روی R5 G6 B5 و بعد Ok



                          الان فرمت ذخیره شما شده 16 بیتی یعنی دو بایت برای هر پیکسل و نوع ذخیره بیتی هم RRRRRGGG GGGBBBBB برای دو بایت هست و دقیقا همون فرمت مورد نیاز ال سی دی هست یعنی دو بایت می خونی و مستقیم میدی به ال سی دی
                          موفق باشید
                          :bye


                          [glow=black,2,300]بردی جالب با سیستم عاملی جالب !!![/glow]

                          دیدگاه


                            #43
                            پاسخ : پرسرعت ترین AVR کدومه؟

                            سلام
                            مهندس جان خیلی ممنون بابت توضیحات کاملتون
                            یه لطفی میکنید بگین حالا چطوری این دو 8بیتی رو به یه 16بیتی (برای ارسال به ال سی دی) تبدیل کنم؟ :mrgreen: :redface: :rolleyes:
                            بازم ممنون
                            هر چند پیر و خسته دل و ناتوان شدم * * * هر گه که یاد تو کردم جوان شدم :rolleyes:

                            دیدگاه


                              #44
                              پاسخ : پرسرعت ترین AVR کدومه؟

                              ممنونم ولی
                              موضوعات مطرح شده توی این تاپیک به تیترش اصلا ربطی نداره و این درست نیست
                              دوست من بهتره اول کمی درباره این ال سی دی سرچ کنی تا قلقش دستت بیاد
                              توی این تاپیک کلی بحث شده روش (البته فقط برای راه اندازی و نه بهینه شدن برای سرعت)
                              http://www.eca.ir/forum2/index.php?topic=30608.120
                              موفق باشی
                              :bye

                              [glow=black,2,300]بردی جالب با سیستم عاملی جالب !!![/glow]

                              دیدگاه


                                #45
                                پاسخ : پرسرعت ترین AVR کدومه؟

                                نوشته اصلی توسط abbasmh
                                ممنونم ولی
                                موضوعات مطرح شده توی این تاپیک به تیترش اصلا ربطی نداره و این درست نیست
                                دوست من بهتره اول کمی درباره این ال سی دی سرچ کنی تا قلقش دستت بیاد
                                توی این تاپیک کلی بحث شده روش (البته فقط برای راه اندازی و نه بهینه شدن برای سرعت)
                                http://www.eca.ir/forum2/index.php?topic=30608.120
                                موفق باشی
                                :bye
                                ای گفتید ! طبق خلاصه های که تو سایت اتمل هست بیشترین سرعت برا mega ها 20MHz هسش تمام ! لطفا دیگه چیزی اینجا ننویسن. البته بی ادبی نباشه ها. جهت نظم سایت عرض میکنم اگر مشکل خاصی دارید خودتون اول سرچ کنید اگر مفید نبود موضوع جدید ایجاد کنید
                                کوچیک همتون
                                hi miami

                                دیدگاه

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