اطلاعیه

Collapse
No announcement yet.

مشکل در تغییر میکرو در برنامه فاصله یاب التراسونیک

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

    مشکل در تغییر میکرو در برنامه فاصله یاب التراسونیک

    با سلام خدمت اساتید گرامی من یک فاصله یاب می خوام درست کنم و متاسفانه میکروی که این برنامه براش نوشته شده تو شهر ما پیدا نمیشه و مجبور شدم به جای آن از میکروی M8 استفاده کنم ولی موقع compile شدن خطا میگیرهhttp://www.4shared.com/photo/uPvPxcQG/untitled.html
    کلا دستور clkpr چیه که خطا میگیره تقریبا میشه خط 23 و خط 24 ؟
    اینم برنامه

    'Ultrasonic Range Finder
    $regfile = "m8def.dat"
    $crystal = 8000000
    Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = _
    Portb.4 , Db7 = Portb.5 , E = Portb.0 , Rs = Portd.6
    Config Lcd = 16 * 2
    Config Timer0 = Timer , Prescale = 8
    Config Timer1 = Timer , Prescale = 8
    Config Int0 = Falling
    Config Pind.3 = Output
    Config Pind.4 = Output
    Config Pind.5 = Output
    Declare Sub Lcd_show(byval Hex_val As Integer)
    Enable Interrupts
    Disable Int0
    Enable Ovf0
    Enable Ovf1
    On Int0 Ex0_rut
    On Ovf0 T0_rut
    On Ovf1 T1_rut
    Clkpr = &H80
    Clkpr = &H00
    Out1 Alias Portd.4
    Out2 Alias Portd.5
    Trigger Alias Portd.3
    Dim Lcd_show_flag As Bit
    Dim Dip_switch As Byte
    Dim Timer_val As Integer
    Cursor Off : Cls : Lcd "start" : Waitms 1000
    Out1 = 0 : Out2 = 0
    '---------------------------
    Do
    Disable Int0
    Timer0 = &HF4
    Timer1 = &H0000
    Trigger = 0
    Waitms 10
    '-----------------
    Start Timer0
    Start Timer1
    Waitus 100
    Stop Timer0
    Out1 = 0
    Out2 = 0
    Trigger = 1
    Waitus 150
    '----------------
    Enable Int0
    Dip_switch = Pind And &H03
    Select Case Dip_switch
    Case 0:
    Waitms 200
    Case 1:
    Waitms 500
    Case 2:
    Waitms 1000
    Case 3:
    Waitms 2000
    End Select
    If Lcd_show_flag = 1 Then
    Call Lcd_show(timer_val)
    Lcd_show_flag = 0
    End If
    Loop
    End
    '---------------------------
    Ex0_rut:
    Timer_val = Timer1
    Waitus 20
    If Pind.2 = 0 Then
    Disable Int0
    Stop Timer1
    Lcd_show_flag = 1
    End If
    Return
    '---------------------------
    T0_rut:
    Timer0 = &HF4
    Out1 = Not Out1
    Out2 = Not Out1
    Return
    '---------------------------
    T1_rut:
    Stop Timer1
    Cls
    Lcd "Over range"
    Return
    '---------------------------
    Sub Lcd_show(byval Hex_val As Integer)
    Dim D As Long
    Dim Distance As Integer
    D = Hex_val / 2
    D = D * 343
    D = D / 10000
    Distance = D
    Cls
    Lcd "Range> " ; Distance ; "cm"
    End Sub
    به نظر شما من باید چکار کنم؟برنامه هم از کتاب 11 پروژه با AVR پیدا کردم

    #2
    پاسخ : مشکل در تغییر میکرو در برنامه فاصله یاب التراسونیک

    کسی نیست که بتونه جواب ما رو بده؟؟؟؟؟؟؟؟؟؟؟

    دیدگاه


      #3
      پاسخ : مشکل در تغییر میکرو در برنامه فاصله یاب التراسونیک

      سلام دوست عزیز M_mab2004

      من همین پروژه فاصله یاب رو کار کردم روی میکرو Tiny 2313 که گفتید کم یاب هست در حین کار به همین مشکل شما برخوردم .
      اما با استفاده از BASCOM ver 1.11.9.8 دیگه خطا نمی گرفت.تو ورژن های دیگه خطا میگیره احتمالا دلیلش به کرک نرم افزار بر میگرده که این رفتار های عجیب رو از خودش نشون میده!!!!

      ثانیا من نقشه شماتیک این برنامه رو هم که کار کردم دو تا ایراد داره که اگه اصلاح نکنی حاجت نمی گیری؟؟؟؟!!!

      1-پایه RW یا همان پین 5 مربوط به LCD باید به GND وصل بشه که به اشتباه به پین 13 میکرو Tiny 2313 وصل شده؟؟؟؟!!!

      junction اتصال دو مقاومت سری پشت گیرنده ulta sonic هم وصل نشده که باید تصحیح بشه یعنی محل اتصال دو مقاومت R2 و R3 باید به پین 3 آیسی CA3130 وصل بشه تا قسمت منفی سیگنال دریافتی به علت متقارن نبودن تغذیه حذف نشه!!! و یک پرش سیگنال v 2.5 این کار رو انجام میده.

      واقعا آقای مهندس سیدمهدی حسینی با این کتابش شاهکار کرده

      به عکس صفحه 185 که نگاه کنی 2 تا ترانزیستور گوشه سمت چپ PCB که نویسنده ساخته میبینی که حکایت از این داره که نویسنده کتاب 40k رو با مولتی ویبراتور ساخته نه نرم افزاری؟؟!!
      و نقشه شماتیکی که گذاشته ینی کشک؟؟!!

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

      اینا اون چیزایی بود که من خودم تجربه کردم.
      و اما راهکار برو سراغ مدار 555 و اون رو به پین تریگر وصل کن.ینی RESET رو به تریگر همون میکرو وصل کن.اینطوری میتونی از همون برنامه استفاده کنی با این تفاوت که دیگه MAX 232 رو حذف می کنی و 40K رو از بیرون می سازسی وفقط ارسالش رو با میکرو کنترل می کنی : :nice: :nice: :nice
      اگه سوالی داشتید Email بزنید چون دیر به سایت سر می زنم. llmpowerll@gmail

      دیدگاه


        #4
        پاسخ : مشکل در تغییر میکرو در برنامه فاصله یاب التراسونیک

        سلام
        میشه مطالبی درباره با میکرو ATtiny 2313 برام برستید مرسی

        دیدگاه

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