اطلاعیه

Collapse
No announcement yet.

ارسال و دریافت توسط rs485

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

    ارسال و دریافت توسط rs485

    با عرض سلام خدمت اساتید محترم
    من در رابطه با rs485 سوال داشتم.یه سرچی هم زدم به جواب نرسیدم.
    من 3 میکرو را با adm 485 به هم متصل کردم و جهت ارسال و دریافت رو با میکرو مشخص می کنم.بعد از اینکه از یک میکرو چیزی ارسال کردم می خوام تا بره تو حالت دریافت و کد ارسال شده را از slave بخونه
    1- دیتا ای که slave میخونه درست نیست(مثلا 2 رو می فرستم ولی 0 دریافت می کنه) بعد که دیتارو درست دریافت کرد master به جای مثلا 5 عدد 0 رو دریافت میکنه.
    اگر راهنمایی کنید چه طور میشه عکس قرار داد من شماتیک رو میفرستم.
    با تشکر
    به اميد ظهور مولامون که صد البته نزديک است

    #2
    پاسخ : ارسال و دریافت توسط rs485

    چون 3 تا دستگاه دارید همیشه مواظب باشید که در هر حالت تنها یکی از آنها در حالت ارسال باشد و 2تای دیگر در حالت دریافت باشند ( منظورم پایه کنترل همین چیپ 485 است )

    دیدگاه


      #3
      پاسخ : ارسال و دریافت توسط rs485

      کلا وقتی هر چی میفرستید 0 دریافت میشه یا هر دفعه فرق میکنه؟
      چيزي را بگو که بتواني بنويسي
      چيزي را بنويس که بتواني امضا کني
      چيزي را امضا کن که بتواني به آن عمل کني (ناپلئون)

      دیدگاه


        #4
        پاسخ : ارسال و دریافت توسط rs485

        نوشته اصلی توسط داریوش عباسی
        چون 3 تا دستگاه دارید همیشه مواظب باشید که در هر حالت تنها یکی از آنها در حالت ارسال باشد و 2تای دیگر در حالت دریافت باشند ( منظورم پایه کنترل همین چیپ 485 است )
        من مطمئن هستم این قسمت رو درس چک می کنم
        نوشته اصلی توسط lordsoroosh
        کلا وقتی هر چی میفرستید 0 دریافت میشه یا هر دفعه فرق میکنه؟
        من با بسکام کار می کنم
        برای فرستنده

        $regfile = "m8def.dat"
        $crystal = 1000000
        $baud = 2400
        '-------------------------------------------------------------------------------
        Config Serialin = Buffered , Size = 20
        Config Serialout = Buffered , Size = 20
        Enable Interrupts
        '-------------------------------------------------------------------------------

        Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , E = Portb.4 , Rs = Portb.5
        Config Lcd = 16 * 2
        Cls
        Cursor Off


        '-------------------------------------------------------------------------------
        Dim S1 As Byte
        Dim Id As Byte

        S1 = 0


        '-------------------------------------------------------------------------------

        Do
        Set Portd.2

        Waitms 300
        Printbin 45
        Reset Portd.2
        S1 = Waitkey()
        Lcd S1

        Loop

        End
        '-------------------------------------------------------------------------------



        Return

        برای گیرنده

        $regfile = "m8def.dat" ' specify the used micro
        $crystal = 1000000 ' used crystal frequency
        $baud = 2400
        Config Serialin = Buffered , Size = 1
        Config Serialout = Buffered , Size = 1
        Enable Interrupts

        '-------------------------------------------------------------------------------

        Config Adc = Single , Prescaler = Auto

        Config Portd.2 = Output
        Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , E = Portb.4 , Rs = Portb.5
        Config Lcd = 16 * 2
        Cls
        Cursor Off
        Lcd "UART Test"
        'Config Pind.7 = Output
        '-------------------------------------------------------------------------------
        'Io Alias Portd.2
        Led Alias Portd.7
        'Reset Io
        '-------------------------------------------------------------------------------
        Dim W As Word
        Dim A As Byte
        Dim B As Byte
        Dim Ar(5) As Byte
        Dim I As Byte
        Dim Temp As Byte

        Const Id = 2
        '-------------------------------------------------------------------------------

        Do
        Reset Portd.2


        I = Waitkey()
        Lcd I
        If I = 45 Then
        Waitms 300
        Set Portd.2
        Printbin 5
        End If


        Loop
        end

        من فکر میکنم که زمانی که فرستنده دیتا رو می فرسته تا بخواد بره تو حالت دریافت قبل از اون گیرنده دیتارو می فرسته.(جواب دیتای گرفته شده رو ) و فرستنده تو خط

        S1 = Waitkey() گیر می کنه
        به اميد ظهور مولامون که صد البته نزديک است

        دیدگاه

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