اطلاعیه

Collapse
No announcement yet.

اندازه گیری زمان بین تغییر زمان دو سیگنال

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

    اندازه گیری زمان بین تغییر زمان دو سیگنال

    سلام دوستان
    من برای اندازه گیری تاخیر زمانی بین دو سیگنال(در بازه ۱ میلی ثانیه تا نهایتا ۲ ثانیه) از اینتراپت های خارجی و تایمر استفاده کردم،که توسط یک کلید پس از اندازه گیری میشه تایمر رو ریست کرد و از نو اندازه گیری رو آغاز کرد.

    بدین شکل که با رخداد اینتراپت اول در زیر برنامه ی این وقفه تایمر استارت میشه و شروع به شمارش و نمایش زمان در لوپ اصلی میکنه و در نهایت با رخداد وقفه ی دوم تایمر استاپ میشه و زمان نمایش داده میشه، دقت اندازه گیری و عملکرد مطلوب هست ولی معمولا در اندازه گیری سوم یا چهارم به بعد میکرو هنگ میکنه و ظاهرا آدرس برگشتی از وقفه ها رو گم میکنه ،در این رابطه نیاز به راهنمایی دارم،

    ممنون میشم لطف بفرمایید و راهکاری ارائه بدین

    میکروکنترلر مورد استفاده atmega8
    فرکانس ۸ مگ
    تایمر ۱ ، زمان سر ریزی تایمر ۱ میلی ثانیه
    جدیدترین ویرایش توسط omidabbas; ۱۳:۰۰ ۱۴۰۲/۰۹/۲۱.

    #2
    نوشته اصلی توسط omidabbas نمایش پست ها
    سلام دوستان
    من برای اندازه گیری تاخیر زمانی بین دو سیگنال(در بازه ۱ میلی ثانیه تا نهایتا ۲ ثانیه) از اینتراپت های خارجی و تایمر استفاده کردم،که توسط یک کلید پس از اندازه گیری میشه تایمر رو ریست کرد و از نو اندازه گیری رو آغاز کرد.

    ممنون میشم لطف بفرمایید و راهکاری ارائه بدین

    میکروکنترلر مورد استفاده atmega8
    فرکانس ۸ مگ
    تایمر ۱ ، زمان سر ریزی تایمر ۱ میلی ثانیه
    با سلام و احترام
    دوست عزیز بدون گذاشتن برنامه انتظار چه کمکی داری!؟

    دیدگاه


      #3
      نوشته اصلی توسط evergreen نمایش پست ها

      با سلام و احترام
      دوست عزیز بدون گذاشتن برنامه انتظار چه کمکی داری!؟
      به برنامه دسترسی نداشتم،در اولین فرصت میذارم برنامه رو

      ولی تشخیص خودم گم کردن آدرس برگشت از وقفه هست،

      آیا میشه مثلا هر بار به این آدرس دسترسی پیدا کرد و مقدارش رو ریست کرد؟

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


      تشکر

      دیدگاه


        #4
        کد:
        $regfile ="m8def.dat"
        $crystal = 8000000
        $hwstack = 32
        $swstack = 32
        $framesize = 32
        
        
        'config watchdog=64
        Config Lcd = 16 * 2
        Config Lcdpin = Pin , Rs = Pinb.0 , E = Pinb.1 , Db4 = Pinb.2, Db5 = Pinb.3 , Db6 = Pinb.4 , Db7 = Pinb.5
        Cls
        Cursor Off
        
        
        dim a as long
        'dim b as long
        'dim c as long
        
        
        
        'config portc.5=output:led2 alias portc.5
        config portc.2=input:ssw alias pinc.2
        
        
        Config Timer1 = Timer , Prescale =1
        On Ovf1 ledd
        Stop Timer1
        
        Config Int0=falling
        config int1=rising
        On Int0 sig_a
        on int1 sig_b
        
           disable Int0
           disable Int1
           disable Ovf1
           disable timer1
           disable Interrupts
        
        
        
             locate 1,7:lcd"test8"
             waitms 1000:cls
        
        
            locate 1,1:lcd"Press+ to start"
        
         a=0
        Do
        
           if ssw=1 then
           waitms 50
         ' bitwait ssw,reset
            locate 1,1:lcd"wait set sig1      "
           a=0
            timer1=57344
           Enable Int0
           Enable Int1
           Enable Ovf1
           enable timer1
          Enable Interrupts
         reset watchdog
            end if
        
        
           locate 2,1:lcd"time= ";a ;"ms   "
            waitms 10
        
        
        Loop
        
        End
        
        
        sig_a:
        
        
         start timer1
         disable Int0
         locate 1,1:lcd"wait set sig2      "
        
        return
        
        
        sig_b:
        
        stop timer1
        
           disable Int1
           disable Ovf1
        
            locate 1,1:lcd"press sw         "
        return
        
        
        
        ledd:
         timer1=57344
         a=a+1
         return​
        جدیدترین ویرایش توسط omidabbas; ۲۲:۲۹ ۱۴۰۲/۰۹/۲۱.

        دیدگاه


          #5
          سلام

          دوستان راه حل مناسبی برای مشکل فوق نیست؟!

          دیدگاه


            #6
            سلام
            چطور میشه به پروگرم کانتر دسترسی پیدا کرد؟
            میشه آدرس فعلی رو حین انجام برنامه دید یا خیر؟
            و اینکه میشه به آدرس مشخصی رفت؟

            دیدگاه

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