اطلاعیه

Collapse
No announcement yet.

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

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

    #16
    پاسخ : اشنایی با روشها و تکنیکهای بهینه برنامه نویسی همدیگه

    حالا نظر شما در مورد این چیه؟ تازه من 8 تا LED هم بهش اضافه کردم
    NET هایی که به میکرو وصل میشن D0 تا D7 و RST و CLK هستند که با هم میشه فقط 10 تا IO
    در ضمن زوار جان IO یعنی فقط خروجی یا ورودی نه ADC ولی خوبه در مورد این روش هم بیشتر توضیح بدی تا برای همه قابل فهم بشه
    اگر سگمنتها کاتد مشترک باشند میتونید از ULN2803 هم به جای ترانزیستورها استفاده کنید .
    یعنی توی برنامه یک لحظه پایه های 0تا 7 رو برای اسکن سگمنت به صورت خروجی تعریف می کنید بعد از اون پایه ها رو به صورت ورودی تا کلید ها رو اسکن کنید اون وقت چجوری به سگمنت ها مقدار می دید مگه نباید همزمان با اسکن به سگمنت مقدار داده بشه تا led ها روشن بشه یا مثلا اگر یک led روشن بشه و همون موقع بخواهیم ستون متناظر با همون پایه مربوط به led رو یک کنیم اون وقت اون led روشن نمیشه و یک سوال دیگه چه زمانی اون 8 تا led رو روشن می کنید ؟ در واقع این جوری برنامه سختر میشه درسته؟ (البته معما چو حل گشت آسان شود )
    ببخشید منظورتون از rst و clk چیه ؟

    دیدگاه


      #17
      پاسخ : اشنایی با روشها و تکنیکهای بهینه برنامه نویسی همدیگه

      نوشته اصلی توسط mojtaba_led
      یعنی توی برنامه یک لحظه پایه های 0تا 7 رو برای اسکن سگمنت به صورت خروجی تعریف می کنید بعد از اون پایه ها رو به صورت ورودی تا کلید ها رو اسکن کنید اون وقت چجوری به سگمنت ها مقدار می دید مگه نباید همزمان با اسکن به سگمنت مقدار داده بشه تا led ها روشن بشه یا مثلا اگر یک led روشن بشه و همون موقع بخواهیم ستون متناظر با همون پایه مربوط به led رو یک کنیم اون وقت اون led روشن نمیشه و یک سوال دیگه چه زمانی اون 8 تا led رو روشن می کنید ؟ در واقع این جوری برنامه سختر میشه درسته؟ (البته معما چو حل گشت آسان شود )
      ببخشید منظورتون از rst و clk چیه ؟
      دوست من 4017 یه ایسی کانتر جانسونه اگر یه کلاک با لبه بالا روتده به پین 14 یا یه کلاک پایین رونده به پین 13 بیاد این ایسی به ترتیب فقط یکی از خوجیهای 10 گانه خودشو یک میکنه و بعد از سرریز دوباره ار اول شروع میشه و پین 15 اون ایسی رو ریست میکنه و شمارش رو به اولین خروجی میبره
      حالا به این صورت عمل میکنید
      پین 15 رو یک میکنید و بعد صفر میکنید تا ایسی 4017 ریست بشه
      در این حالت خروجی 1 که همون پین KEY ما هست فعاله پرت رو که به صورت ورودی تعریف کردیم رو میخونیم تا کلید های فشرده شده بدست بیاد
      یک لبه بالا رونده با پین 14 میدید تا خروجی 2 که همون مشترک LED ها است فعال بشه حالا پرت دیتا رو که به صورت خروجی تغییر دادیم مینویسیم تا LED های متناظر روشن بشن
      یک لبه بالا رونده با پین 14 میدید تا خروجی 3 که همون مشترک اولین سگمنت ما است فعال بشه حالا باز پرت دیتا رو که به صورت خروجی تغییر دادیم مینویسیم تا عدد متناظر روی سگمنت اول نمایش داده بشه
      و
      .
      .
      .
      .
      .
      این کار رو تا جایی ادامه میدیم که خروجی 10 که اخرین و هشتمین سکمنته فعال بشه و دیتا متناظر شگمنت هشتم رو روی پرت قرار میدیم

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

      دیدگاه


        #18
        پاسخ : اشنایی با روشها و تکنیکهای بهینه برنامه نویسی همدیگه

        سلام نمیدونم این یه تکنیک حساب میشه یا نه شاید راه حل ساده تری هم باشه
        :agree:
        خلاصه کشف خودم بود :nerd: :read:

        برای اینکه تو lcd های کاراکتری یه نوشته ثابت و یه نوشته در حالت چشمک زن باشه من از این دستورا استفاده میکنم ( فرض کنیم میخوایم یه ساعت رو رو ال سی دی نشون بدیم بعد میخوایم ساعت رو تنظیم کنیم مثلا دقیقه رو میخوایم تنظیم کنیم از اینا استفاده میکنیم تا چشمک بزنه :applause

        کد:
        waitms 500 : cls : locate 1 , 1 : LCD "-------"
        waitms 500 : locate 2 , 1 : lcd " ++++++"
        به جای ++++++ و ------- هرچه میخواهد دل تنگت بنویس :mrgreen:
        AV Maziton 100
        Render By Artlantis Studio
        [img width=346 height=100]http://maziyar123.persiangig.com/View.jpg[/img]

        دیدگاه


          #19
          پاسخ : اشنایی با روشها و تکنیکهای بهینه برنامه نویسی همدیگه

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

          دیدگاه


            #20
            پاسخ : اشنایی با روشها و تکنیکهای بهینه برنامه نویسی همدیگه

            نوشته اصلی توسط javad1354
            مازیار جان فکر میکنم اگه بخواهیم توی یه برنامه از 500 مبلی ثانیه تاخیر استفاده کنیم دیگه به خیلی از کارها نمی رسیم !
            سلام جواد جان ممنون که جواب دادی آره یکم زیاده فکر کنم 200 یا 250 خوب باشه
            من اینو برای پروژه ساعتم نوشته بودم مثلا فرض کن میخوای دقیقه رو تنظیم کنی چشمک میزد ولی من زمان رو 100 میلی گزاشته بودم نمیدونم چرا اینجا زدم 500
            AV Maziton 100
            Render By Artlantis Studio
            [img width=346 height=100]http://maziyar123.persiangig.com/View.jpg[/img]

            دیدگاه


              #21
              پاسخ : اشنایی با روشها و تکنیکهای بهینه برنامه نویسی همدیگه

              برای lcd میتونی مثل حالت متنی PC استفاده کنی. یعنی یک بافر بگیری به حجم دو برابر صفحه تصویر lcd مثلا برای 2 در 16 بجای 32 بایت 64 بایت بگیری. یک بایت برای خود کاراکتر و یک بایت برای مشخصات رنگی اون. حالا در یک تایمر 2 میلی ثانیه میتونی یک کاراکتر یک کاراکتر اطلاعات رو به LCD ارسال کنی. اگر کاراکتر مربوطه چشمک زن باشه در بعضی سیکلها باید بجای کاراکتر جای خالی چاپ کنی. با این روش اگر عملیات خروجی زیادی روی LCD داشته باشی وقت برنامه تو اصلا نمیگیره. ولی روتین های ارسال داده و چاپ روی lcd باید بازنویسی بشه.

              دیدگاه


                #22
                پاسخ : اشنایی با روشها و تکنیکهای بهینه برنامه نویسی همدیگه

                LCDهای کاراکتری خودشون یه دستور دارن که اگر اجرا بشه کاراکتر فعلی چشمک میزنه.
                There is nothing so practical as a good theory. — Kurt Lewin, 1951

                دیدگاه


                  #23
                  پاسخ : اشنایی با روشها و تکنیکهای بهینه برنامه نویسی همدیگه

                  نوشته اصلی توسط رضا سپاس یار
                  LCDهای کاراکتری خودشون یه دستور دارن که اگر اجرا بشه کاراکتر فعلی چشمک میزنه.
                  با سلام اگه ممکنه دستورش رو میگید ؟ :redface:
                  AV Maziton 100
                  Render By Artlantis Studio
                  [img width=346 height=100]http://maziyar123.persiangig.com/View.jpg[/img]

                  دیدگاه


                    #24
                    پاسخ : اشنایی با روشها و تکنیکهای بهینه برنامه نویسی همدیگه

                    از دستور Cursor Blink برای چشمک زدن آخرین کاراکتر میتونی استفاده کنی و با دستور Cursor Noblink میتونی از حالت چشمک زدن خارج کنی . البته این دستور کل پیکسل های کاراکتر رو روشن و خاموش میکنه ولی برای کار بد نیست چون خیلی دستور راحتیه .
                    وقتی همه نیروهای جسمی و ذهنی متمرکز شوند توانایی فرد برای حل مشکلات به طور حیرت انگیزی چند برابر می شود .
                    نرمن وینسنت پیل

                    دیدگاه


                      #25
                      پاسخ : اشنایی با روشها و تکنیکهای بهینه برنامه نویسی همدیگه

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

                      دیدگاه


                        #26
                        پاسخ : اشنایی با روشها و تکنیکهای بهینه برنامه نویسی همدیگه

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

                        دیدگاه


                          #27
                          پاسخ : اشنایی با روشها و تکنیکهای بهینه برنامه نویسی همدیگه

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

                          دیدگاه


                            #28
                            پاسخ : اشنایی با روشها و تکنیکهای بهینه برنامه نویسی همدیگه

                            با سپاس .
                            من مدارمو با 2 عدد باتری قلمی راه اندازی کردم و برای هر سگمنت یک مقاومت 100 اهمی گذاشتم . یک ال ای دی معمولی را با همین ولتاژ و مقاومت روشن کردم و با مولتی متر دیجیتال جریان را اندازه گرفتم مقدار قرائت شده 1.5 میلی آمپر بود . ضمنا ولتاژ در زمان روشن بودن ال ای دی 3 ولت بود . بعد همین کار را برای مدارم انجام دادم و جریان کل 22.5 میلی آمپر بود . اگر قرار باشد حد اکثر هفت قطعه دایود در آن واحد روشن باشد پس باید حد اکثر 7*1.5=10.5 میلی آمپر جریان مصرف شود ولی در عمل بیش از 2 برابر مصرف جریان داریم . چرا ؟
                            ضمنا مدارم جز همین 6 قطعه سون سگمنت و مقاومت های لازم هیچ چیز دیگه ای ندارد .
                            وقتی همه نیروهای جسمی و ذهنی متمرکز شوند توانایی فرد برای حل مشکلات به طور حیرت انگیزی چند برابر می شود .
                            نرمن وینسنت پیل

                            دیدگاه


                              #29
                              پاسخ : اشنایی با روشها و تکنیکهای بهینه برنامه نویسی همدیگه

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

                              دیدگاه


                                #30
                                پاسخ : اشنایی با روشها و تکنیکهای بهینه برنامه نویسی همدیگه

                                الگوریتم سورت یا مرتب سازی (SORT) فقط با یک حلقه
                                مخصوص اسمبلی کار ها

                                کد:
                                while(i<n){ if(a[i]<=a[i+1]){
                                
                                [INDENT] i++;
                                [/INDENT]
                                
                                 }
                                else{
                                
                                [INDENT] swap(a[i],a[i+1]);
                                [/INDENT]
                                [INDENT] i--;
                                [/INDENT]
                                
                                }
                                 }
                                کد:
                                
                                


                                توضیحات کد:
                                یه آرایه داریم به اسم a که اعداد به صورت اتفاقی توش ریخته شدند و ما میخوایم مرتبش کنیم
                                i در اینجا به عنوان شمارندمون عمل میکنه و مقدار اولش 0 هست
                                حالا این عضو ها رو چک میکنه دونه دونه میره جلو با زیاد کردن مقدار i
                                اگر به یه جای مشکل دار برسه اون رو جابه جا میکنه و i کم میشه تا در مرحله بعد بیاد و ببینه اون عضوی که مشکل داشت و جا به جا شد با عضو های دیگه قبل از خودش هم مشکل داره یا نه بر فرض مشکل داره این روال ادامه پیدا میکنه و میرسه به جایی که باید باشه بعد از اون به بعدش مرتب شدست و میره جلو
                                وقتی هم که i به مقدار n برسه یعنی همه چیز مرتب شدست که تونسته تا اینجا برسه و بعد سورت تموم میشه

                                این الگوریتم رو شخصی به نام آقای سربازی آزاد ابداع کرده و اسم اون رو گذاشته Stupid Sort!!!
                                جدیدترین ویرایش توسط shahryarrajabzadeh; ۰۹:۴۳ ۱۳۹۵/۰۹/۰۲.

                                دیدگاه

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