اطلاعیه

Collapse
No announcement yet.

نظر در مورد برنامه ساعت با ال سی دی(بسکام)

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

    نظر در مورد برنامه ساعت با ال سی دی(بسکام)

    سلام به همه ...من یه برنامه ی ساعت با rtc داخلی میکرو نوشتم ..با تاریخ شمسی ..روز شمار فارسی و سال کبیسه و .. جلو و عقب کشیدن خودکار ساعت در پایان هر سال و اول هر سال ........از دوستان خواهش میکنم کمک کنند که هر چقر بشه حجم برنامه رو کاهش بدم...چون من با همه ی دستورات bascom آشنایی ندارم...اگرم پیشنهاد در مورد بهبود برنامه دارید دریغ نکنید... :biggrin:

    این هم سورس برنامه به همراه فایل پروتوس:

    http://www.mediafire.com/?u72yo3juv4jc6t9

    #2
    پاسخ : نظر در مورد برنامه ساعت با ال سی دی(بسکام)

    فکر می کنم بهتر به جای کاهش حجم برنامه اون قسمتهایی رو که باهش مشکل داری رو مطرح کنی
    انا لله و انا اليه الراجعون

    دیدگاه


      #3
      پاسخ : نظر در مورد برنامه ساعت با ال سی دی(بسکام)

      نوشته اصلی توسط شاهین شرق
      فکر می کنم بهتر به جای کاهش حجم برنامه اون قسمتهایی رو که باهش مشکل داری رو مطرح کنی
      مشکلی با برنامه ندارم مشکلم اینکه میخوام از این برنامه تو mega8 استفاده کنم ولی حجم برنامه تقریبا دوبرابر ظرفیت mega8 هستش از اونجایی که تازه کار برنامه نویسی هستم و سواد برنامه نویسی من هم تا همین مقدار بیشتر نیست خواستم بدونم بجای این دستوراتی که نوشتم دستورات دیگری هم هست که حجم برنامه رو کاهش بده یا نه؟؟ ایا برای ایجاد تقویم شمسی و سال کبیسه کار های دیگری میشه کرد که حجمو کاهش بده....

      دیدگاه


        #4
        پاسخ : نظر در مورد برنامه ساعت با ال سی دی(بسکام)

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

        فقط 313 نفر...

        دیدگاه


          #5
          پاسخ : نظر در مورد برنامه ساعت با ال سی دی(بسکام)

          اولا از کجا فهمیدی دو برابر حجم مگا هشت هست؟ چون حجم فلش مورد نیازت از 7 کیلو بایت هم کمتره. یک نگاهی به حجم فایل bin تولید شده بنداز.
          دوما بنظر میرسه که برنامه ات نسبتا تمیز نوشته شده بنا براین انگشت توی چشمش نکن. بذار کارشو بکنه.
          ثالثا؛ یک روش کلی برات بگم!
          اگر بخوای خیلی کار درست کار کنی (که اغلب ما ها هم این کارو نمیکنیم) باید برنامه رو به فعالیت های متفاوت بشکنی و با ساختن اجزای پایه اجزای بالاتر رو از اونا دربیاری و این یعنی طراحی اولیه روی کاغذ. اما اگر حال این کارو نداشتی همینطوری که تا بحال نوشتی برنامه ات رو بنویس بعد ببین کجا کد تکراری داری. اونا رو اگر به ساختار منطقی و عملیاتی برنامه ات صدمه نمیزنه توی هم ادغام کن. مثلا در چند جای برنامه ات دیدم کد هایی برای نوشتن تاریخ با یا بدون سال و ماه و روز داری. البته مهمترین مسئله اینه که کدت جواب میده. ولی "سلیقه شخصی" من اگه بودم یک تابع کوچولو مینوشتم که با اون مقادیر Y و M و D رو چاپ کنم. مثلا:


          Sub ShowDate(ByVal nY As Integer, ByVal nM as Byte, ByVal nD as Byte)
          Locate 2 , 1 : If nY<>0 Then Lcd nY : Else Lcd " " : End If
          Locate 2 , 5 : Lcd "/"
          Locate 2 , 6 : If nM<>0 Then Lcd nM : Else Lcd " " : End If
          Locate 2 , 8 : Lcd "/"
          Locate 2 , 9 : If nD<>0 Then Lcd nD : Else Lcd " " : End If
          End Sub


          حجم کد آخرین مرحله از بهینه سازی میتونه باشه مگر اینکه حجم بالا باعث بروز مشکلاتی بشه. ولی اینجا نیست.
          با این احوالات من عشقم میکشه این تغییر رو بدم. کاملا سلیقه ای.

          دیدگاه


            #6
            پاسخ : نظر در مورد برنامه ساعت با ال سی دی(بسکام)

            آقا رضا خیلی ممنون از وقتی که گذاشتید ...و خیلی ممنون از اینکه گفتید حجم فایل bin مهمه چون من اینو نمیدونستم و فکر میکردم فایل hex باید هم اندازه ی حجم میکرو باشه.....بلاخره تازه کارم دیگه تا کاملا راه بیفتم طول میکشه..... :biggrin:

            دیدگاه


              #7
              پاسخ : نظر در مورد برنامه ساعت با ال سی دی(بسکام)

              همنطوری که آقا رضا گفتن برنامه ی شما رو نمیشه خیلی تغییر داد...
              ولی یه پیشنهاد توی تنظیمات بسکام توی قسمت خروجی یه گزینه داره به نام Optimize Code این گزینه رو فعال کن و ببین حجمت فرق میکنه؟
              الهم عجل لولیک الفرج

              فقط 313 نفر...

              دیدگاه


                #8
                پاسخ : نظر در مورد برنامه ساعت با ال سی دی(بسکام)

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

                دیدگاه


                  #9
                  پاسخ : نظر در مورد برنامه ساعت با ال سی دی(بسکام)

                  مهمترین مسئله اش اینه که شما بطور رویدادی با مسئله برخورد نداشتی. وقتی شرطی یا حالتی پیش میاد بلافاصله سیستم رو میبری تو حالت صبر کردن و wait میدی. خوب این زمان پاسخ رو بالا میبره و غیر قابل محاسبه. یعنی اینجا میشه گفت کاملا بیسیک کار کردی. فرض کردی وقت میکرو مال خودته. هر جا بخوای هر کاری بکنی میتونی پس میکنی! و اصلا حواست به این موضوع نیست که زمانی که قراره میکرو ات کاری انجام بده مثلا کلیدی رو چک کنه ممکنه تازه wait رو شروع کرده باشه و چون این wait ها هم ماشالله هزار ماشالله کم وقت نمیگیرن با این فشار دادن کلید که ممکنه بیش از 50 میلی ثانیه پیش نیاد همزمان بشه عملا سیستم کلیدتو نمیبینه. مگه اینکه زمان زیادی کلید رو نگهداری تا در یکی از حلقه هات میکرو این فشار کلید رو ببینه.
                  ضمنا من درست نفهمیدم. چرا جای جای برنامه ات مدام Cls رو استفاده میکنی یا مدام wait میدی؟ مشکل خاصی هست که نمیتونی lcd رو در یک سیکل دایمی پاک کنی و دوباره بازسازی کنی؟ این دستورات (البته نسبت به بقیه دستورات دیگه) نسبتا زمانگیر هستن.

                  دیدگاه


                    #10
                    پاسخ : نظر در مورد برنامه ساعت با ال سی دی(بسکام)

                    آقا رضا در مورد wait درسته خیلی استفاده کردم ..اینم برای اینکه وقتی دستور میده که مثلا وقتی روز از 31 بیشتر شد به ماه اضافه کنه ....(که اولش از wait استفاده نکردم) ..اونوقت بجای اینکه یکی به ماه اضافه بشه برای خودش چنتا اضافه میکرد.....در مورد cls هم این مشکلو داشنم که وقتی عدد روی lcd از 9 به 10 تغییر میکرد ...10 به طور کامل پاک نمیشد و صفرش روی lcd جا میموند ....حالا اگه راهنماییم کنید ممنون میشم... :read:

                    دیدگاه


                      #11
                      پاسخ : نظر در مورد برنامه ساعت با ال سی دی(بسکام)

                      راحتترین کار اینه که از روال وقفه تایمر استفاده کنی. در این روال بایستی فشار دادن کلید رو چک کنی و کلید رو بعد از debounce داخل یک بافر قرار بدی تا بتونی اونو بعدا از این بافر برداری. راجع به lcd هم میتونی اطلاعات رو با طول ثابت چاپ کنی. مثلا سال همیشه 4 رقم و دقیقه همیشه 2 رقم. اینجوری جز cls ابتدای کار به مورد دیگه ای احتیاج پیدا نمیکنی.
                      ببین میتونی اینو خودت خدمتش برسی یا مشکلی هست.

                      دیدگاه


                        #12
                        پاسخ : نظر در مورد برنامه ساعت با ال سی دی(بسکام)

                        آقا دستت درد نکنه فهمیدم باید چی کار کنم امروز تغیراتشو میدم ببینم از پسش بر میام...

                        دیدگاه


                          #13
                          پاسخ : نظر در مورد برنامه ساعت با ال سی دی(بسکام)

                          :rolleyes:
                          فایل ساعت رو بر روی سرور اصلی اپلود کردم
                          فایل های پیوست شده
                          [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

                          دیدگاه


                            #14
                            پاسخ : نظر در مورد برنامه ساعت با ال سی دی(بسکام)

                            http://www.mediafire.com/?o9vvf9s9j7hyv7w

                            دوستان این لینک برنامه با کمی تغییرات ..از جمله برطرف کردن مشکل دکمه ی ست و طراحی مجدد روز شمار ...قبلیه اینجوری بود(4شنبه)و جدیده اینطوریه(چهار شنبه).....از آقا رضا هم دوباره باید تشکر کنم که راهنمایی های خوبی رو کردند.. :nerd: ....

                            دیدگاه

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