اطلاعیه

Collapse
No announcement yet.

مشکل در برقراری ارتباط rs-485 بین دو میکرو با bascom

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

    مشکل در برقراری ارتباط rs-485 بین دو میکرو با bascom

    با سلام
    مشکل اینجاست که master پاسخ رو درست نمی گیره ممنون می شم نظر بدید.برنامه master و slave رو میزارم.

    '******************************** master *************************************
    '
    '******************************************** ***********************************
    $regfile = "m64def.dat"
    $crystal = 1000000
    $baud = 1200
    $hwstack = 42
    $swstack = 40
    $framesize = 40
    '----------------------------------LCD CONFIURATION-----------------------------

    Config Graphlcd = 240 * 128 , Dataport = Portc , Controlport = Porta , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8
    '----------------------------------RS-485 CONFIG--------------------------------

    Config Print0 = Porte.2 , Mode = Set
    Rs485dir Alias Porte.2
    Config Rs485dir = Output
    Rs485dir = 1
    '------------------------------DIMENTIONE THE PARAMETERS------------------------

    Dim M As String * 8
    Dim B As Byte
    M = "MESAGE"
    '--------------------------------------MAIN-------------------------------------
    Cls
    Cursor Off

    Locate 1 , 1
    Lcd "RS-485 Test"

    Locate 2 , 1
    Lcd M ; " "
    Print M
    Waitms 500

    Input B
    Waitms 50
    Locate 4 , 1
    Lcd B
    Rs485dir = 1

    Locate 6 , 1
    Lcd "OK"

    End

    '******************************** slave *************************************
    '
    '******************************************** ***********************************
    $regfile = "m32def.dat"
    $crystal = 1000000
    $baud = 1200
    $hwstack = 42
    $swstack = 40
    $framesize = 40
    '----------------------------------LCD CONFIURATION-----------------------------

    Config Lcdpin = Pin , Rs = Portc.1 , E = Portc.2 , Db4 = Portc.3 , Db5 = Portc.4 , Db6 = Portc.5 , Db7 = Postc.6
    Config Lcd = 20 * 2
    '----------------------------------RS-485 CONFIG--------------------------------

    Config Print0 = Portd.2 , Mode = Set
    Rs485dir Alias Portd.2
    Config Rs485dir = Output
    Rs485dir = 0
    '------------------------------DIMENTIONE THE PARAMETERS------------------------

    Dim A As String * 8
    Dim B As Byte
    B = 56
    '--------------------------------------MAIN-------------------------------------
    Cursor Off
    Cls

    Locate 1 , 1
    Lcd "RS-485 Test"
    Locate 1 , 15
    Lcd B

    Input A
    Waitms 50
    Locate 2 , 1
    Lcd A ; " "

    Rs485dir = 1
    Waitms 500
    Print B

    Locate 2 , 10
    Lcd "OK"

    End

    #2
    پاسخ : مشکل در برقراری ارتباط rs-485 بین دو میکرو ب

    کار میکنه و دستور های input رو رد میکنه یا کلا تعطیله؟
    پایه های دیفرانسیلی رو درست وصل کردی؟

    دیدگاه


      #3
      پاسخ : مشکل در برقراری ارتباط rs-485 بین دو میکرو با bascom

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

      دیدگاه


        #4
        پاسخ : مشکل در برقراری ارتباط rs-485 بین دو میکرو با bascom

        این هم لینک فایلهاش:
        http://aian6211.persiangig.com/rs-485/RS-485.DSN
        http://aian6211.persiangig.com/rs-485/master1.bas
        http://aian6211.persiangig.com/rs-485/slave.bas

        دیدگاه


          #5
          پاسخ : مشکل در برقراری ارتباط rs-485 بین دو میکرو با bascom

          نظر دیگه ای نداری آقا رضا ؟

          دیدگاه


            #6
            پاسخ : مشکل در برقراری ارتباط rs-485 بین دو میکرو با bascom

            سلام
            برای استفاده از RS-485 در BASCOM از دستور زیر باید استفاده کنیم ( که شما هم نوشتین)
            کد:
            Config Print0 = Portd.2 , Mode = Set
            این دستور هنگام PRINT ، پایه فعال ساز RS-485 رو یک میکنه و بعد از اتمام دوباره اون پایه رو صفر میکنه .
            بنابراین شما نباید در برنامه خودتون این پایه رو صفر یا یک بکنید ( این کار اتوماتیک انجام میشه)

            مورد دوم اینکه تو برنامه شما هیچ حلقه ای برای ادامه وجود نداره و برنامتون فقط یک بار اجرا میشه

            دیدگاه


              #7
              پاسخ : مشکل در برقراری ارتباط rs-485 بین دو میکرو با bascom

              When you use RS-485 half duplex communication you need a pin for the direction of the data. The CONFIG PRINT automates the manual setting/resetting. It will either SET or RESET the logic level of the specified pin before data is printed with the BASCOM print routines. After the data is sent, it will inverse the pin so it goes into receive mode.

              You need to set the direction of the used pin to output mode yourself.

              پس از ارسال اتوماتیک ، میره به مد دریافت وبرای ارسال مجدد باید set بشه با این وجود من انجام دادم.

              دستور Rs485dir = 1 رو تو هر دو برنامه حذف کردم و تو هر دو loop هم گذاشتم ولی عملکرد مدار همونه.
              مستر استرینگ mesage رو می فرسته و اسلیو بدرستی مگیره و نمایش میده و بعد عدد 56 رو می فرسته و لی مستر صفر می گیره و نمایش میده.
              جالبه که برنامه اسلیو رو با اینتراپت هم نوشتم و دقیقا همین اتفاق افتاد.

              دیدگاه


                #8
                پاسخ : مشکل در برقراری ارتباط rs-485 بین دو میکرو با bascom

                ???????!!!!!!!!!!!!!!!!!!!!

                دیدگاه


                  #9
                  پاسخ : مشکل در برقراری ارتباط rs-485 بین دو میکرو با bascom

                  عجیبه کسی نیست یا کسی بلد نیست؟بابا یکی جواب بده حداقل

                  دیدگاه


                    #10
                    پاسخ : مشکل در برقراری ارتباط rs-485 بین دو میکرو با bascom

                    http://www.eca.ir/forum2/index.php?topic=75196.0

                    دیدگاه

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