اطلاعیه

Collapse
No announcement yet.

تأخیر جمع کردن

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

    تأخیر جمع کردن

    سلام
    چندتا عدد دارم که هر وقت نیاز بود باید باهم جمع شوند.
    ولی به علت زیاد بود این اعداد نمی توانم (سرعتم جواب نمی دهد) این کار را انجام بدهم.
    در بیشتر مواقع هم این اعدادی که می خواهم جمع کنم صفر هستند با وجود این امر آِیا اگر یک شرط قرار بدهم که سرعت بالاتر رود
    در واقع سرعت یک شرط بیشتر است یا یک جمع 16 بیتی اینتیجری
    دکتر چمران در 1311 در تهران متولد شد
    وي در زمان اقامت در آمريکا انجمن اسلامي آمريکا را تأسيس کرد که منجر به قطع بورسيه وي توسط شاه شد.
    او با اينکه يکي از دانشمندان مطرح آمريکا به حساب مي آمد بدون توجه به مدرک به مصر رفت و آموزش نظامي ديد.

    #2
    پاسخ : تأخیر جمع کردن

    سوال خود را بصورت واضح تر و با شرح و بسط بیشتر توضیح دهید.
    اوژن: به معنای افکننده و شکست دهنده است
    دانایی، توانایی است-Knowledge is POWER
    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

    دیدگاه


      #3
      پاسخ : تأخیر جمع کردن

      سلام واقعیتش دارم همون ارگ شما را می سازم ولی با قابلیت بیشتر و با arm(سینتی سایزر)
      این ارگ دارای چند نت هست که هر نت دارای 7 هارمونیک.
      خب حالا وقتی من یک نت را می زنم این نت باید با هارمونیک هایش با نت های قبلی جمع شود.
      مشکلم اینجاست که وقتی می خواهم این عملیات جمع کردن را انجام دهم خیلی وقت گیر می شود و فرکانس نت هایم بهم می خورد.
      البته خودم به این نتیجه رسیدم که احتمالا دیگه راهی نیست و باید کمی از محاسباتش بکاهم.
      چون مثلا من 24 نت دارم که هر کدام 7 هارمونیک که می شود 168 عدد موج سینوسی!!! و این 168 موج را در عرض حدودا 24 میکروثاینه باید محاسبه کند و اعداد را جمع کند.
      خیلی روش کار کردم تقریبا تمام شده ولی حیف که فعلا نمی تواند چند نت را با هم ادغام کند.
      دکتر چمران در 1311 در تهران متولد شد
      وي در زمان اقامت در آمريکا انجمن اسلامي آمريکا را تأسيس کرد که منجر به قطع بورسيه وي توسط شاه شد.
      او با اينکه يکي از دانشمندان مطرح آمريکا به حساب مي آمد بدون توجه به مدرک به مصر رفت و آموزش نظامي ديد.

      دیدگاه


        #4
        پاسخ : تأخیر جمع کردن

        یادم رفت این را بگم
        در واقع می خواست به جای اینکه این نت ها و هارومونیک ها را باهم جمع کند قلبش برای هر کدوم یک شرط قرار بدهم و بگم اگر دامنه از این مقدار بیشتر بود با هم جمع کند(آخه دامنه مثل شارژ و دشارژ خازن تغییر می کند تا نت ها به صورت ضربه در خروجی ظاهر نشود)
        دکتر چمران در 1311 در تهران متولد شد
        وي در زمان اقامت در آمريکا انجمن اسلامي آمريکا را تأسيس کرد که منجر به قطع بورسيه وي توسط شاه شد.
        او با اينکه يکي از دانشمندان مطرح آمريکا به حساب مي آمد بدون توجه به مدرک به مصر رفت و آموزش نظامي ديد.

        دیدگاه


          #5
          پاسخ : تأخیر جمع کردن

          صرف نظر از نوع میکروکنترلر که ارتباطی با XMEGA ندارد و از نظر شیوه برنامه نویسی، یک روش برای افزایش سرعت این است که بجای جمع سینوسی ها بصورت Real time، یکبار در ابتدای برنامه مجموع سینوسی ها را محاسبه کنید و در یک آرایه بریزید و بعد این آرایه را بر حسب نت های فشار داده شده با سرعت های متفاوت بخوانید و با هم جمع کنید.
          اوژن: به معنای افکننده و شکست دهنده است
          دانایی، توانایی است-Knowledge is POWER
          برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
          وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
          قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
          اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
          ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

          دیدگاه


            #6
            پاسخ : پاسخ : تأخیر جمع کردن

            نوشته اصلی توسط طراح
            صرف نظر از نوع میکروکنترلر که ارتباطی با XMEGA ندارد و از نظر شیوه برنامه نویسی، یک روش برای افزایش سرعت این است که بجای جمع سینوسی ها بصورت Real time، یکبار در ابتدای برنامه مجموع سینوسی ها را محاسبه کنید و در یک آرایه بریزید و بعد این آرایه را بر حسب نت های فشار داده شده با سرعت های متفاوت بخوانید و با هم جمع کنید.
            بله این یک راه حل خوبی است ولی همونطور که گفتم این نت ها به صورت شارژ و دشارژ خازن در حال تغییر هستند و حتما باید Real time باشد.
            دکتر چمران در 1311 در تهران متولد شد
            وي در زمان اقامت در آمريکا انجمن اسلامي آمريکا را تأسيس کرد که منجر به قطع بورسيه وي توسط شاه شد.
            او با اينکه يکي از دانشمندان مطرح آمريکا به حساب مي آمد بدون توجه به مدرک به مصر رفت و آموزش نظامي ديد.

            دیدگاه


              #7
              پاسخ : تأخیر جمع کردن

              مرحله جمع سینوسی ها را می توانید با همان روش گفته شده انجام دهید و تنها عملیات ضرب مجموع سینوسی ها در منحنی پوش مورد نظر و جمع نهایی نت ها می تواند بصورت Real time انجام شود که این روش صرفه جویی قابل توجهی را در محاسبات ایجاد می کند.
              اوژن: به معنای افکننده و شکست دهنده است
              دانایی، توانایی است-Knowledge is POWER
              برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
              وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
              قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
              اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
              ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

              دیدگاه


                #8
                پاسخ : تأخیر جمع کردن

                فکر می کنم باید بیشتر توضیح بدهم.
                من برای هر نت 7 هارمونیک دارم که دامنه ی این 7 هارمونیک نیز توسط 7 ولوم تنظیم می شود.
                من برای هر نت با دامنه های متفاوت نیز آرایه هایی درست کردم و در فلش میکرو ذخیره کردم.
                یعنی هر نت یک آرایه ی دو بعدی هست که دامنه ی های مختلف را نیز دارد. (یک برنامه در ویژآل استدیو نوشتم که هر نت را به صورت یک لایبری به من می دهد)
                ولی خب باز هم زمان کم می آورم.
                دکتر چمران در 1311 در تهران متولد شد
                وي در زمان اقامت در آمريکا انجمن اسلامي آمريکا را تأسيس کرد که منجر به قطع بورسيه وي توسط شاه شد.
                او با اينکه يکي از دانشمندان مطرح آمريکا به حساب مي آمد بدون توجه به مدرک به مصر رفت و آموزش نظامي ديد.

                دیدگاه


                  #9
                  پاسخ : تأخیر جمع کردن

                  سلام یک راه پیدا کردم!!!!
                  یکسری شرط در برنامه نوشتم و کار این شرط ها این بود که یک شماره به هر نتی که می بایست پخش می شد (صفر نبودند) می داد و بعد در تایمر اینتراپت(محل اصلی پخش نت ها) چندتا دستور سوئیچ کیس نوشتم اینجوری نت هایی که صفر بودن وارد جمع نهایی نمی شدند و برنامه خیلی بهینه شدش.
                  انشاالله یک فیلم ازش تهیه می کنم و در همین بخش قرار می دهم
                  دکتر چمران در 1311 در تهران متولد شد
                  وي در زمان اقامت در آمريکا انجمن اسلامي آمريکا را تأسيس کرد که منجر به قطع بورسيه وي توسط شاه شد.
                  او با اينکه يکي از دانشمندان مطرح آمريکا به حساب مي آمد بدون توجه به مدرک به مصر رفت و آموزش نظامي ديد.

                  دیدگاه


                    #10
                    پاسخ : تأخیر جمع کردن

                    http://www.aparat.com/v/QImjS
                    دکتر چمران در 1311 در تهران متولد شد
                    وي در زمان اقامت در آمريکا انجمن اسلامي آمريکا را تأسيس کرد که منجر به قطع بورسيه وي توسط شاه شد.
                    او با اينکه يکي از دانشمندان مطرح آمريکا به حساب مي آمد بدون توجه به مدرک به مصر رفت و آموزش نظامي ديد.

                    دیدگاه


                      #11
                      پاسخ : تأخیر جمع کردن

                      میکروی 8 بیتی برای انجام عمل جمع 16 بیتی حدودا 15 سیکل ساعت زمان میبره . ولی عمل جمع 8 بیتی همون یک سیکل ساعت طول میکشه .
                      تنها موردي كه همه آدما يقين دارن خدا در حقش زیاد لطف کرده
                      داشتن عقله زيادتر از دیگر آدم ها است

                      دیدگاه


                        #12
                        پاسخ : تأخیر جمع کردن

                        نوشته اصلی توسط aliila
                        میکروی 8 بیتی برای انجام عمل جمع 16 بیتی حدودا 15 سیکل ساعت زمان میبره . ولی عمل جمع 8 بیتی همون یک سیکل ساعت طول میکشه .
                        از پاسختون ممنون ولی چطوری اینقدر تأخیر زیاد می شود یعنی 15 برابر می شود
                        دکتر چمران در 1311 در تهران متولد شد
                        وي در زمان اقامت در آمريکا انجمن اسلامي آمريکا را تأسيس کرد که منجر به قطع بورسيه وي توسط شاه شد.
                        او با اينکه يکي از دانشمندان مطرح آمريکا به حساب مي آمد بدون توجه به مدرک به مصر رفت و آموزش نظامي ديد.

                        دیدگاه


                          #13
                          پاسخ : تأخیر جمع کردن

                          نوشته اصلی توسط aliila
                          میکروی 8 بیتی برای انجام عمل جمع 16 بیتی حدودا 15 سیکل ساعت زمان میبره .
                          برای CPU های خانواده AVR یا XMEGA، جمع 8 بیتی به 1 سیکل و جمع 16 بیتی به 2 سیکل ماشین زمان نیاز دارد (از طریق دستورت متوالی ADD و ADC).
                          اوژن: به معنای افکننده و شکست دهنده است
                          دانایی، توانایی است-Knowledge is POWER
                          برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                          وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                          قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                          اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                          ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                          دیدگاه


                            #14
                            پاسخ : پاسخ : تأخیر جمع کردن

                            نوشته اصلی توسط طراح
                            برای CPU های خانواده AVR یا XMEGA، جمع 8 بیتی به 1 سیکل و جمع 16 بیتی به 2 سیکل ماشین زمان نیاز دارد (از طریق دستورت متوالی ADD و ADC).
                            سلام
                            چه طور می شه با یک یا دو سیکل این کار رو کرد

                            فرض می کنیم دو عدد داخل فلش داریم و می خواهیم این دو را با هم جمع کنیم

                            خب مگه غیر از اینه که باید این دو تا عدد یک بار فراخوانی بشن بعد محاسبه روی اون دو عدد انجام بشه و بعد پاسخ داده بشود

                            خب الان یعنی این سه مرحله توی 2 سیکل انجام می شود

                            یا این که منظور شما فقط قسمت جمعش بوده ؟؟؟؟
                            اللهم صل علی محمد و ال محمد و عجل فرجهم
                            پیامبر اکرم(ص):زکات علم نشر آن است.
                            در کشور هاي غربي انتقال تجربيات و دانش به افراد مبتدي يک پيشرفت محسوب شده و به آن مديريت دانش مي گويند. ولي متاسفانه اين فرهنگ هنوز در کشور ايران رايج نشده است !!!

                            دیدگاه


                              #15
                              پاسخ : تأخیر جمع کردن

                              نوشته اصلی توسط 011
                              از پاسختون ممنون ولی چطوری اینقدر تأخیر زیاد می شود یعنی 15 برابر می شود
                              حول و حوش 15 پالس زمانی است که از ماکرو استفاده کنید که این ماکرو هم باعث میشه حجم کد بشدت افزای پیدا کنه.حال اگر برید سراغ روتین -
                              فقط فراخوانی و بازگشت از روتین 7 پالس ساعت میگیرد . اگر 4 ریجستر در گیر عمل جمع بشن فقط پوش پاپ اینها در داخل روتین 8 پالس میبره . فکر کنم کم نرخ ترین الگوریتم حداقل 3 عمل جمع و دو عمل شیفت و 5 عمل انتساب لازم داشته باشه که این هم میشه 10 پالس

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

                              دیدگاه

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