اطلاعیه

Collapse
No announcement yet.

برنامه زمان سنج با بسکام ؟

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

    برنامه زمان سنج با بسکام ؟

    سلام دوستان

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


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

    #2
    پاسخ : برنامه زمان سنج با بسکام ؟

    تایمر درون میکروها زمان را برای ما نگه میدارند با روشن کردن تایمر شمارش آغاز میشود
    زمان هر شمارش بستگی به فرکانس اسیلاتور میکرو داره بعد از پایان شمارش ،عدد تایمر نشاندهنده
    زمان سپری شدن از شروع کار تایمر است مثلا اگر عدد تایمر 1000 باشد وفرکانس میکرو 1مگا
    باشد (هرپالس1میکروثانیه)زمان سپری شده برابر 1000میکرو ثانیه یا 1 میلی ثانیه است
    اگر با تحریک یک پایه میکرو تایمر شروع به کار کند (START TIMER) وبا تریگر دوم درپایه دیگرعدد تایمر ثبت شود
    زمانگیری انجام میشود.
    در میکرو امکانی جهت ثبت عدد تایمر توسط یک رویداد وجود دارد که به ان CAPTURE گویند(پایه ICP درمیکروها)
    در پروژه شما ولتاژ5ولت به پایه ICP اعمال میشود که باعث ثبت عدد تایمر میشود وبا ضرب و تقسیم ساده زمان محا سبه
    میشود .همچنین تایمر را به گونه ای پیکر بندی میکنیم که در صورت عدم تریگر دوم بعد از زمان نیم ثانیه تایمر ریست میشود
    ودوباره شمارش از ابتدا آغاز گردد. اگه به زمانهای دقیق نیاز داری از کریستال خارجی استفاده کن.
    برنامه زیر فقط یه ایده بهت میده وباید هر جور که خواستی تغییرش بدی(قابل اجرا نیست).
    متن بالا وبرنامه رو سریع نوشتم اگه مشکلی داره از دوستان تقاضا دارم تذکر بدن

    $regfile = "m16def.dat"
    $crystal = 1000000
    Config Timer1 = Timer , Prescale = 1 , Capture Edge = Rising
    Enable Interrupts
    Enable Timer1
    Enable Icp1

    On Ovf1 Timer1_isr
    On Icp1 Capturetimer1

    Dim A As Single

    Dim B As Byte

    Do
    If Portb.0 = 1 Then Start Timer1

    Loop

    Timer1_isr:
    Incr B
    Return

    Capturetimer1:
    A = Timer1
    A = A / 1000000
    Return

    End

    دیدگاه


      #3
      پاسخ : برنامه زمان سنج با بسکام ؟

      خیلی جالب و روان پاسخ دادید

      ممنونم

      دیدگاه

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