اطلاعیه

Collapse
No announcement yet.

jتولید اعداد اتفاقی با avr

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

    jتولید اعداد اتفاقی با avr

    سلام به تمامی دوستان خوب eca

    همانطور که میدانید در کدویژن با استفاده از دستور rand اعداد اتفاقی میتوان تولید کرد .
    ولی من هر کاری میکنم نمیشود

    در صورت امکان اگر کسی توانسته این کار را بکند یک برنامه نمونه کوچک بنویسه ممنون میشم ( با کد ویژن )


    مرسی به امید دیدار :bye
    کمتر سخن گویم
    بیشتر عمل کنیم

    #2
    پاسخ : jتولید اعداد اتفاقی با avr

    سلام
    تو قسمت پروژ ه های تکمیل شده AVR یه پروژه همین جوری هست که با بیسیکه یه نگاه بنداز شاید بدردت بخوره.
    " علت هر شكستي عمل كردن بدون فكر است" الكس مكنزي


    [move](---> موسیقی ایرانی <---) [/move]

    دیدگاه


      #3
      پاسخ : jتولید اعداد اتفاقی با avr

      سلام ................

      اگه می تونید نمونه ی برنامتون رو بذارید .

      بعدش هم من یه ایده ی دیگه دارم . همونطور که می دونید نویز رفتار تصادفی داره ، در نتیجه می تونید از یکی از کانال های ADC نویز رو دریافت کنید و به دیجیتال تبدیل کنید . اون وقت این میشه عدد تصادف . در مورد رنج هم می تونید یه سیگنال تصادفی تقویت شده رو انتخاب کنید . موفق باشید .
      دوستان! مدتی کمتر به سایت میام ..

      دیدگاه


        #4
        پاسخ : jتولید اعداد اتفاقی با avr

        با تایمر به راحتی این کار را میشه کرد یه جا تایمر را هر جا که خواستی بخونید این میشه عدد تصادفی.
        Difficult But possible
        به اميد ايراني آباد.
        http://art-net.ir

        دیدگاه


          #5
          پاسخ : jتولید اعداد اتفاقی با avr

          نوشته اصلی توسط علی-
          با تایمر به راحتی این کار را میشه کرد یه جا تایمر را هر جا که خواستی بخونید این میشه عدد تصادفی.
          سلام .................

          ببینید برای خوندن تصادفی TCNT هم یه روال تصادفی لازمه که منجر به پیش بینی یه برنامه ی تصادفی میشه . اما اون روشی که در بالا بهش اشاره کردم خیلی خوب جواب داده . موفق باشید .
          دوستان! مدتی کمتر به سایت میام ..

          دیدگاه


            #6
            پاسخ : jتولید اعداد اتفاقی با avr

            بر چه اساس و مبنایی فکر کردین که هر تابعی که توی ANSI C که کامپایلر CPU های سرعت بالا و قدرتمند خانواده 8086 هستند باید تو کامپایلر AVR هم وجود داشته باشه همونطور که میدونیم ساختن یه عدد تصادفی الگوریتم پیچیده ای داره ولی برای AVR میتونی از همون روش اقای حسام الدین استفاده کنی ولی شک دارم که عدد تولید شده کاملا تصادفی و بین (0-255) برای خروجی 8 بیتی باشه منظورم اینه که این عدد همیشه باید به یه طرف تمایل بیشتری داشته باشه مثلا 80% اوقات بین (128-255)باشه چون نویز معمولا تمایل به 1 کردن سطح داره البته این رو بر اساس تجربه شخصی میگم و درست یا نادرست بودنش با تست عملی ثابت میشه به نظر شما این طور نیست؟


            Qt - A cross-platform application and UI framework

            با کامپایلرهای قدرتمند GCC در Linux و MinGw در Windows

            دیدگاه


              #7
              پاسخ : jتولید اعداد اتفاقی با avr

              نویز خودش عمل تصادفی هست درست اما ما ممکن این کار را جایی انجام بدیم که اصلا نویز باعث مزاحمت باشه.
              همون استفاده از تایمر بهترین راه است میشه تقسیم یا ضرب یا هر عمل دیگه ای هم روش انجام داد دیگه من تصادفی تر از تایمر سراغ ندارم. :agree:
              Difficult But possible
              به اميد ايراني آباد.
              http://art-net.ir

              دیدگاه


                #8
                پاسخ : jتولید اعداد اتفاقی با avr

                نوشته اصلی توسط علی-
                نویز خودش عمل تصادفی هست درست اما ما ممکن این کار را جایی انجام بدیم که اصلا نویز باعث مزاحمت باشه.
                همون استفاده از تایمر بهترین راه است میشه تقسیم یا ضرب یا هر عمل دیگه ای هم روش انجام داد دیگه من تصادفی تر از تایمر سراغ ندارم. :agree:
                علی اقا اگه یه کم بیشتر فکر کنی میفهمی که برای این کاری که شما میگی باید زمان خوندن تایمر یا راه اندازی اون تصادفی باشه که به همونجایی که اول بودیم میرسیم و هیچ چیزی حل نمیشه.


                Qt - A cross-platform application and UI framework

                با کامپایلرهای قدرتمند GCC در Linux و MinGw در Windows

                دیدگاه


                  #9
                  پاسخ : jتولید اعداد اتفاقی با avr

                  سلام ............

                  آخرین جوابی که من از طریق این کار گرفتم یه محدوده ای بین 68 تا 255 به من داد (البته من قبل از اینکه سیگنال بفرستم به کانال ، اونو تضعیفش کردم ) موفق باشید .
                  دوستان! مدتی کمتر به سایت میام ..

                  دیدگاه


                    #10
                    پاسخ : jتولید اعداد اتفاقی با avr

                    نوشته اصلی توسط sallysat

                    علی اقا اگه یه کم بیشتر فکر کنی میفهمی که برای این کاری که شما میگی باید زمان خوندن تایمر یا راه اندازی اون تصادفی باشه که به همونجایی که اول بودیم میرسیم و هیچ چیزی حل نمیشه.
                    آقا sallysat اگه یه کم بیشتر تفکر کنید متوجه می شید که اگه یه دوستی صحبتی فرمود اول خوب منظور طرف را درک می کنند بعد پاسخ می دند. :agree:

                    اگه بد می گم بگو بد می گی یا اگه هم متوجه نشدند می گند بیشتر توضیح بده.

                    اما از این حرفا گذشته من سورسش را نوشتم خودتون تحلیلش کنید ببینید میشه یا نه یا به زبون ما (تازه کارا) :nerd: چه جوری.

                    #include "avr/io.h"
                    #include "avr/interrupt.h"

                    volatile int i = 0;

                    // Timer0 Overflow
                    ISR(TIMER0_OVF_vect)
                    {
                    // reinit counter
                    TCNT0 = 3;
                    PORTD=i;

                    }

                    void Timer0_init()
                    {
                    // Timer0 settings: ~ 259072 ticks (64.768 ms)
                    TCNT0 = 3;
                    TIMSK = (1<<TOIE0);
                    }

                    void init_timer()
                    {
                    Timer0_init();
                    }
                    int main(void) {
                    init_timer();
                    DDRD = 0xff;
                    sei();
                    while (1) {
                    i++;
                    }
                    }
                    Difficult But possible
                    به اميد ايراني آباد.
                    http://art-net.ir

                    دیدگاه


                      #11
                      پاسخ : jتولید اعداد اتفاقی با avr

                      دوست عزیزم علی اقای گرامی من دوست ندارم واسه خودم دشمن درست کنم هیچ کسی هم نگفته که شما تازه کارید



                      ولی یه کم دیگه بیشتر فکر کنید روی این مساله بهتره اگر چه که خوب فکر کردید و برنامه هم برای این کار نوشتید و تا سوال و جواب و بحثی نباشه کسی چیزی یاد نمیگیره ولی نه تا اون حد که سوال و جواب ها حالت کل کل پیدا کنه. خوب حالا ادامه بحث سازنده

                      به نظر من برنامه خوبی که شما نوشتید یه دنباله از اعداد رو تولید میکنه چون من هیچ روند تصادفی در برنامه شما نمیبینم من دانشجوی ترم 6 کامپیوترم ترم 2 که با c کار میکردم این سوال برام پیش اومد که این تابع rand() که توی کتابخونه stdlib.h وجود داره بر چه اساس کار میکنه تو اینترنت یه سری الگوریتم هایی هم برای این کار پیدا کردم و اگه الان دارم با شما بحث میکنم مطمئن باش حداقل یه ذره در مورد این مساله اطلاعات دارم

                      شما اگر صلاح دونستید برنامه خودتون رو توی پروتئوس یا هر محیط دیگه ای که صلاح دونستید دیباگ کنید من و سایر دوستان منتظر پاسخ شما هستیم

                      البته اگه از avrddx استفاده نمیکنین این نکته رو توجه داشته باشین که برنامه رو با سرعت پایین مثلا 100h ران کنید و اعداد تولید شده روی پورت D رو که ادرس 0x12 رجیسترهای i/o است به ترتیب بخونید و نه اینکه برنامه رو اجرا کرده و بعد از یه مدت تصادفی puse رو بزنید و عدد رو بخونید اینطوری در واقع شما با دست خودت اون پدیده تصادفی رو ایجاد میکنی :rolleyes:




                      Qt - A cross-platform application and UI framework

                      با کامپایلرهای قدرتمند GCC در Linux و MinGw در Windows

                      دیدگاه


                        #12
                        پاسخ : jتولید اعداد اتفاقی با avr

                        بابا مگه من چی گفتم چرا اینقدر سنگین صحبت می کنید آدم دستا پاشو گم می کنه.
                        Difficult But possible
                        به اميد ايراني آباد.
                        http://art-net.ir

                        دیدگاه


                          #13
                          پاسخ : jتولید اعداد اتفاقی با avr

                          :cry2: :cry2: :cry2: :cry2: :cry2: :cry2: :cry2: :cry2: :cry2: :cry2: :cry2: :cry2:
                          نه نمیشه من می خواستم از خطای تایمر استفاده کنم دیدم بیشت از 1.5 درصد جواب نمیده که این هم کم هست.
                          Difficult But possible
                          به اميد ايراني آباد.
                          http://art-net.ir

                          دیدگاه


                            #14
                            پاسخ : jتولید اعداد اتفاقی با avr

                            سلام ...........

                            داشتم کم کم نگران ادامه ی بحث میشدم (گفتم الان یه چیزی پیش میاد )

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

                            در مورد تایمر هم جناب "علی" باید بگم که همون طور که خودتون هم اشاره کردید ، مال این تیپ کارا نیست (چون فکر این خطاهاشو کردن؛ سازنده ها) . بهب هر حال یه بحث خوب در این تاپیک مطرح شد که فکر کنم به کار خیلی ها بیاد . موفق باشید .
                            دوستان! مدتی کمتر به سایت میام ..

                            دیدگاه

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