اطلاعیه

Collapse
No announcement yet.

کمک در حل مشکل برنامه(راه اندازی دو سنسور smt160)

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

    کمک در حل مشکل برنامه(راه اندازی دو سنسور smt160)

    برنامه زیر را برای راه اندازی دو تا سنسور smt160 نوشتم ولی جواب نمیده
    میشه اساتید بگید مشکل کجاست؟؟؟؟؟ :sad:

    Smt160:
    Do
    Gosub Read_data_sm160
    Locate 1 , 1
    Lcd "T1= " ; Temp1 ; "c ";

    Locate 2 , 1
    Lcd "T2= " ; Temp2 ; "c ";

    Wait 1
    Loop

    '-------------------------------------------------------------------------------
    Read_data_sm160:

    Bitwait Pinb.1 , Set
    Bitwait Pinb.1 , Reset
    Bitwait Pinb.1 , Set
    Bitwait Pinb.1 , Reset
    Bitwait Pinb.1 , Set
    Bitwait Pinb.1 , Reset
    Stop Timer1

    Start Timer1
    Bitwait Pinb.2 , Set
    Bitwait Pinb.2 , Reset
    Bitwait Pinb.2 , Set
    Bitwait Pinb.2 , Reset
    Bitwait Pinb.2 , Set
    Bitwait Pinb.2 , Reset
    Stop Timer1

    Bitwait Pinb.1 , Set
    Start Timer1
    Bitwait Pinb.1 , Reset
    'Xl = Timer1
    V_set1 = Timer1

    Bitwait Pinb.2 , Set
    Start Timer1
    Bitwait Pinb.2 , Reset
    'Xl = Timer1
    V_set2 = Timer1

    Timer1 = 0
    Start Timer1
    Bitwait Pinb.1 , Set
    'Xf = Timer1
    V_reset1 = Timer1

    Timer1 = 0
    Start Timer1
    Bitwait Pinb.2 , Set
    'Xf = Timer1
    V_reset2 = Timer1

    X1 = V_set1 + V_reset1
    Duty1 = V_set1 / X1

    Duty1 = Duty1 - 0.320
    Temp1 = Duty1 / 0.00470
    Waitms 1

    X2 = V_set2 + V_reset2
    Duty2 = V_set2 / X2

    Duty2 = Duty2 - 0.320
    Temp2 = Duty2 / 0.00470
    Waitms 1

    Locate 1 , 1
    Temp1 = Round(temp1)

    Locate 2 , 1
    Temp2 = Round(temp2)

    Stop Timer1
    Return

    #2
    پاسخ : کمک در حل مشکل برنامه(راه اندازی دو سنسور smt160)

    سلام دوست عزیز!
    شما باید برای دقت بالا فرکانس میکرو را افزایش بدی.من 16mhz استفاده کردم
    ابتدا باید پایه مورد نظر را چک کنی بعد تایمر را استارت کنی .بعد از تغییر شکل از + به منفی بلا فاصله مقدار تایمرو در یک متغیر از word قرار بدی .از این طریق زمان پالس +/- در آید .
    timer1=0
    bitwait pinx.y,set
    bitwait pinx.y,reset
    start timer1
    bitwait pinx.y,set
    value(word)=timer1
    stop timer1
    timer1=0
    این برای پالس - - می باشد
    پالس + را هم به همین صورت محاصبه کن بعد در فرمول دیتاشیت قرار بده.

    موفق باشی!

    دیدگاه

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