اطلاعیه

Collapse
No announcement yet.

درخواست کمک برای ساخت کرنومتر

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

    درخواست کمک برای ساخت کرنومتر

    سلام دوستان
    من برای پایان ترمم باید یه پروژه تحویل بدم
    نیاز به کمک دارم
    اگه امکانش هست منو راهنمایی کنید
    پروژم برنامه یک کرنومتر هست که همزمان 2 تا زمان رو اندازه بگیره
    من برنامه بسکام کرنومتر رو دارم اما نمیدونم چیکار کنم که 2 تا زمان رو اندازه بگیره
    پروتئوس هم بلد نیستم :sad: :sad: :sad:
    با تشکر

    #2
    پاسخ : درخواست کمک برای ساخت کرنومتر

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

    دیدگاه


      #3
      پاسخ : درخواست کمک برای ساخت کرنومتر

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

      دیدگاه


        #4
        پاسخ : درخواست کمک برای ساخت کرنومتر

        عزیز برادر. من که اصل ایده رو گفتم که. فکر نمیکنم دردسر آنچنانی داشته باشه. تیکه تیکه که انجامش بدی و کارو پیش ببری من هم نباشم بقیه دوستان کمک میکنن. اما اینکه بخوای بشینی و کاری نکنی یا از این بترسی که بلد نیستی که کار پیش نمیره. مگه من روز اول بلد بودم؟ شما فعلا بشین بی خیال کرونومتر شو. یک روال آماده کن که بر اساس یک تایمر یک میزان زمانی رو اندازه گیری کنه و روی lcd نمایش بده. تا بعد.

        دیدگاه


          #5
          پاسخ : درخواست کمک برای ساخت کرنومتر

          رضا آقا آخه من انقدر وقت ندارم که الان تازه بخوام استارت بزنم اگه میتونی اون قسمتی که باید اضافه شه به این برنامه که 2 تا زمان رو بسنجه بنویس و بگو که به کجاش باید اضافه بشه
          کد:
           $regfile = "M8DEF.DAT"
           $crystal = 8000000
          
           Config Lcdpin = Pin , Db4 = Pinb.4 , Db5 = Pinb.5 , Db6 = Pinb.0 , Db7 = Pinb.1 , Rs = Pinb.2 , E = Pinb.3
           Config Lcd = 16 * 1
           Dim A As Single
           Dim B As Word
          
          
           Cursor Off
           Enable Interrupts
          
           Config Timer0 = Counter , Edge = Rising
          
          
           Config Timer1 = Timer , Prescale = 8
           Enable Timer1
           Enable Ovf1
           On Ovf1 T1
          
          A:
           Stop Timer1
           Timer1 = 0
           Tcnt0 = 0
           A = 0
           B = 0
           Locate 1 , 1
           Lcd "CORNOMETER READY"
           Lcd A
           If Tcnt0 = 1 Then
           Start Timer1
           Cls
           jmp B
           Else
           jmp A
           End If
          
          
          B:
           If Tcnt0 = 2 Then
           Stop Timer1
           A = B * 65536
           A = A + Timer1
           A = A / 1000000
           Locate 1 , 1
           Lcd Fusing(a , "##.######")
           Lcd " Sec "
           jmp C
           Elseif Tcnt0 = 1 Then
           A = B * 65536
           A = A / 1000000
           Locate 1 , 1
           Lcd Fusing(a , "##.###")
           jmp B
           End If
          
          
          C:
           Do
           If Tcnt0 = 3 Then
           JMP A
           End If
           Loop
          
          T1:
           Timer1 = 0
           Incr B
           Return

          دیدگاه


            #6
            پاسخ : درخواست کمک برای ساخت کرنومتر

            راسیتش من بیسیک خیلی بلد نیستم. ولی فرم کلی برنامه میتونه اینجوری باشه:

            1- یک وقفه تایمر با زمان تقریبی 10 میلی ثانیه یا بالا یا پایین تر بسازین.
            2- دو تا بیت یکی برای "در حال اجرا بودن" کرونومتر اول و دوم بگیرین.
            3- در وقفه تایمر در صورت فعال بودن بیت های بند 2 فقط مقدار دو تا متغیر (هر کدوم مال یک کرونومتر) رو اضافه کنین.
            4- در روال اصلی برای هر کرونومتر دو حالت وجود داره. و تغییر هر دو حالت به هم توسط تشخیص فشار دادن کلید مربوطه انجام میشه. 1- کار کردن و نکردن.
            5- در زمان شروع به کار یک کرونومتر متغیر شمارشی اون کرونومتر رو صفر کنین و بیت کارش رو یک.
            6- در انتهای لوپ برنامه اصلی میزان زمان اندازه گیری شده برای هر دو کرونومتر رو روی lcd نمایش بدین.
            7- رفرش کردن lcd رو با استفاده از یک متغیر کمکی حداکثر هر 200 میلی ثانیه یکبار انجام بدین.

            اینو تبدیل به کد کنین. یک تمرین خوبه برای اینکه کد درست بنویسین. بعدش ایرادات رو انشالله با هم میتونیم حل کنیم.
            وقت کردین همین منطق رو هم یه تحلیل کنین. این از همه مهمتره. تا تیپ ساختارها درست توی ذهنتون بشینه.

            دیدگاه

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