اطلاعیه

Collapse
No announcement yet.

کمک برای رفع مشکل rfm12bp

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

    کمک برای رفع مشکل rfm12bp

    سلام
    دو تا برد دارم که یکی فرستنده و دیگیری گیرنده هستش
    با نرخ انتقال داده ی پایین مشکلی نیست و دیتا به درستی ارسال میشه
    ولی وقتی نرخ انتقال داده رو بالا می برم مثلا تا 115200 دیتا دیگه ارسال نمیشه ( البته فک کنم دریافت نمیشه )
    چیزی به ذهن کسی میرسه ؟؟
    لازم باش کد هاشم میزارم

    #2
    پاسخ : کمک برای رفع مشکل rfm12bp

    نوشته اصلی توسط talireza2005
    سلام
    دو تا برد دارم که یکی فرستنده و دیگیری گیرنده هستش
    با نرخ انتقال داده ی پایین مشکلی نیست و دیتا به درستی ارسال میشه
    ولی وقتی نرخ انتقال داده رو بالا می برم مثلا تا 115200 دیتا دیگه ارسال نمیشه ( البته فک کنم دریافت نمیشه )
    چیزی به ذهن کسی میرسه ؟؟
    لازم باش کد هاشم میزارم
    سلام
    عزیزم وقتی شما می تونید دیتا بایک نرخی انتقال بدیدیعنی درست پیکره بندی شده احتمالا مشکل شما ازمقداردهی ریجسترها برای بادریت جدید کد ریجیسترهاتون قرار بدید
    Ali Reza Tarkesh Esfahani

    Yahoo: amt_1390@yahoo.com

    دیدگاه


      #3
      پاسخ : کمک برای رفع مشکل rfm12bp

      این کد فرستنده
      $regfile = "M16def.dat"
      $crystal = 16000000
      Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.2 , E = Portb.6 , Rs = Portb.7
      Config Lcd = 16 * 2
      Cursor Off
      Cls
      Lcd "Test"
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      Config Adc = Single , Prescaler = 4 , Reference = Avcc
      Start Adc
      Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Prescale = 1
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      Config Portc.0 = Input
      Config Portc.1 = Input
      Config Portc.2 = Output
      Config Portc.3 = Output
      Config Portc.4 = Output
      Config Portc.5 = Input
      Config Portc.6 = Output
      Config Portc.7 = Output
      Config Portd.7 = Output
      Sdi Alias Portc.4
      Rxenn Alias Portc.7
      Txenn Alias Portc.6
      Nirqr Alias Pinc.0
      Nsel Alias Portc.2
      Sck Alias Portc.3
      Led Alias Portd.7
      Sdo Alias Pinc.1
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      Dim Received_word As Word
      Dim Rec_data As Byte
      Dim B As Byte
      Dim T As Byte
      Dim Acmd As Word
      Dim Temp As Word
      Dim Abyte As Byte
      Dim J As Byte
      Dim S As String * 20
      Dim Re As Byte
      Dim Text(512) As Byte
      Dim P As String * 1
      Dim I As Word
      Dim W As Word
      '------------------------ THIS DATA SEND TO RFM12 FOR CONFIG IT
      Dim Cmd(12) As Word
      Cmd(1) = &H80E7
      Cmd(2) = &H82F9
      Cmd(3) = &HA680
      Cmd(4) = &HC620
      Cmd(5) = &H9422
      Cmd(6) = &HC2EC
      Cmd(7) = &HCA83
      Cmd(8) = &HC483
      Cmd(9) = &H98F0
      Cmd(10) = &HE000
      Cmd(11) = &HC800
      Cmd(12) = &HC049
      '------------------------ THIS DATA SEND TO RFM12 FOR START OF PROTOCOL
      Dim Sdata(5) As Byte
      Sdata(1) = &HAA
      Sdata(2) = &HAA
      Sdata(3) = &HAA
      Sdata(4) = &H2D
      Sdata(5) = &HD4
      '------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      Declare Sub Rfm12_read_write()
      Declare Sub Rfm12bpinit()
      Declare Sub Rf12_send()
      Declare Sub Daryaft()
      Declare Sub Rf12_recieve()
      Declare Sub Ersal()
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      First:
      Toggle Led
      Call Rfm12bpinit()
      Toggle Led



      Do

      For I = 1 To 255
      W = Getadc(3)
      W = W / 5
      Text(i) = W
      Next I

      Call Ersal

      Loop

      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      Sub Rfm12_read_write()
      Received_word = 0
      Reset Sck
      Reset Nsel
      '-------------------- FOR (WWW.ISEEE.IR)
      '-------------------------- SNED 16 BIT DATA TO SDI AND READ 16 BIT OF SDO
      For B = 15 To 0 Step -1
      Sdi = Acmd.b
      Set Sck
      Received_word.b = Sdo
      Reset Sck
      Next
      '------------------- END FOR (WWW.ISEEE.IR)
      Reset Sck
      Set Nsel
      End Sub
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      Sub Rfm12bpinit()
      Set Nsel
      Set Sdi
      Reset Sck
      Reset Txenn
      Reset Rxenn
      For J = 1 To 12
      Acmd = Cmd(j)
      Call Rfm12_read_write()
      Next

      Acmd = &HCA81
      Call Rfm12_read_write()
      End Sub
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      Sub Rf12_send()
      Set Txenn
      Reset Rxenn
      Bitwait Nirqr , Reset
      Acmd = &HB800 Or Abyte
      Call Rfm12_read_write()
      End Sub
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      Sub Rf12_recieve()
      Reset Txenn
      Set Rxenn
      Bitwait Nirqr , Reset
      Acmd = &H0000
      Call Rfm12_read_write()
      Acmd = &HB000
      Call Rfm12_read_write()
      Rec_data = Received_word And &H00FF
      End Sub
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      Sub Daryaft()
      Re = 0
      S = ""

      Set Led
      Do
      Acmd = &HCA83
      Call Rfm12_read_write()
      Call Rf12_recieve()
      If Rec_data = 42 Then Re = 1
      If Re = 1 Then S = S + Chr(rec_data)
      If Rec_data = 35 Then Exit Do
      Loop
      Reset Led
      Acmd = &HCA81
      Call Rfm12_read_write()
      End Sub
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      Sub Ersal()

      Toggle Led

      Acmd = &H0000
      Call Rfm12_read_write()

      Acmd = &H8239
      Call Rfm12_read_write()

      For J = 1 To 5
      Abyte = Sdata(j)
      Call Rf12_send()
      Next


      For I = 1 To 255
      Abyte = Text(i)
      Call Rf12_send()
      Next I

      Abyte = &HAA
      Call Rf12_send()

      Abyte = &HAA
      Call Rf12_send()

      Abyte = &HAA
      Call Rf12_send()

      Acmd = &H8201
      Call Rfm12_read_write()


      Reset Txenn
      Set Rxenn

      End Sub

      اینم کد گیرنده
      $regfile = "M16def.dat"
      $crystal = 16000000
      Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.2 , E = Portb.6 , Rs = Portb.7
      Config Lcd = 16 * 2
      Cursor Off
      Cls
      Lcd "Test"
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Prescale = 1
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      Config Portc.0 = Input
      Config Portc.1 = Input
      Config Portc.2 = Output
      Config Portc.3 = Output
      Config Portc.4 = Output
      Config Portc.5 = Input
      Config Portc.6 = Output
      Config Portc.7 = Output
      Config Portd.7 = Output
      Sdi Alias Portc.4
      Rxenn Alias Portc.7
      Txenn Alias Portc.6
      Nirqr Alias Pinc.0
      Nsel Alias Portc.2
      Sck Alias Portc.3
      Led Alias Portd.7
      Sdo Alias Pinc.1
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      Dim Received_word As Word
      Dim Rec_data As Byte
      Dim B As Byte
      Dim T As Byte
      Dim Acmd As Word
      Dim Temp As Word
      Dim Abyte As Byte
      Dim J As Byte
      Dim S As String * 20
      Dim Re As Byte
      Dim Text(512) As Byte
      Dim H As Byte
      Dim P As String * 1
      Dim I As Word
      '------------------------ THIS DATA SEND TO RFM12 FOR CONFIG IT
      Dim Cmd(12) As Word
      Cmd(1) = &H80E7
      Cmd(2) = &H82F9
      Cmd(3) = &HA680
      Cmd(4) = &HC620
      Cmd(5) = &H9422
      Cmd(6) = &HC2EC
      Cmd(7) = &HCA83
      Cmd(8) = &HC483
      Cmd(9) = &H98F0
      Cmd(10) = &HE000
      Cmd(11) = &HC800
      Cmd(12) = &HC049
      '-----------------
      '------------------------ THIS DATA SEND TO RFM12 FOR START OF PROTOCOL
      Dim Sdata(5) As Byte
      Sdata(1) = &HAA
      Sdata(2) = &HAA
      Sdata(3) = &HAA
      Sdata(4) = &H2D
      Sdata(5) = &HD4
      '------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      Declare Sub Rfm12_read_write()
      Declare Sub Rfm12bpinit()
      Declare Sub Rf12_send()
      Declare Sub Daryaft()
      Declare Sub Rf12_recieve()
      Declare Sub Ersal()
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      First:
      Toggle Led
      Call Rfm12bpinit()
      Toggle Led



      Do

      Call Daryaft()


      Loop

      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      Sub Rfm12_read_write()
      Received_word = 0
      Reset Sck
      Reset Nsel
      '-------------------- FOR (WWW.ISEEE.IR)
      '-------------------------- SNED 16 BIT DATA TO SDI AND READ 16 BIT OF SDO
      For B = 15 To 0 Step -1
      Sdi = Acmd.b
      Set Sck
      Received_word.b = Sdo
      Reset Sck
      Next
      '------------------- END FOR (WWW.ISEEE.IR)
      Reset Sck
      Set Nsel
      End Sub
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      Sub Rfm12bpinit()
      Set Nsel
      Set Sdi
      Reset Sck
      Reset Txenn
      Reset Rxenn
      For J = 1 To 12
      Acmd = Cmd(j)
      Call Rfm12_read_write()
      Next

      Acmd = &HCA81
      Call Rfm12_read_write()
      End Sub
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      Sub Rf12_send()
      Set Txenn
      Reset Rxenn
      Bitwait Nirqr , Reset
      Acmd = &HB800 Or Abyte
      Call Rfm12_read_write()
      End Sub
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      Sub Rf12_recieve()
      Reset Txenn
      Set Rxenn
      Bitwait Nirqr , Reset
      Acmd = &H0000
      Call Rfm12_read_write()
      Acmd = &HB000
      Call Rfm12_read_write()
      Rec_data = Received_word And &H00FF
      End Sub
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      Sub Daryaft()
      Re = 0
      S = ""

      Set Led
      H = 1
      Do
      Acmd = &HCA83
      Call Rfm12_read_write()

      For I = 1 To 255
      Call Rf12_recieve()
      Text(i) = Rec_data
      Next I

      Toggle Led

      For I = 1 To 255
      Pwm1a = Text(i)
      Waitus 25
      Next I

      Acmd = &HCA81
      Call Rfm12_read_write()

      Loop
      Reset Led
      Acmd = &HCA81
      Call Rfm12_read_write()
      Waitms 20
      End Sub
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      '-------------------------------------------------------------------------------
      Sub Ersal()

      Toggle Led

      Acmd = &H0000
      Call Rfm12_read_write()

      Acmd = &H8239
      Call Rfm12_read_write()

      For J = 1 To 5
      Abyte = Sdata(j)
      Call Rf12_send()
      Next

      For J = 1 To 3
      Abyte = Text(j)
      Call Rf12_send()
      Next J

      Abyte = &HAA
      Call Rf12_send()

      Abyte = &HAA
      Call Rf12_send()

      Abyte = &HAA
      Call Rf12_send()

      Acmd = &H8201
      Call Rfm12_read_write()


      Reset Txenn
      Set Rxenn
      Waitms 30

      End Sub

      دیدگاه


        #4
        پاسخ : کمک برای رفع مشکل rfm12bp

        کد های بالا دقیقا کار می کنه ولی وقتی
        Cmd(4) = &HC620
        به
        Cmd(4) = &HC601
        تغییر میدم
        دیگه چیزی دریافت نمیشه تو گیرنده

        دیدگاه


          #5
          پاسخ : کمک برای رفع مشکل rfm12bp

          این کد ها در واقع برای ارسال صدا هستن
          قبلنا یه پروژه به صورت ارسال صدا با rfm12 بود که متاسفانه هرچی دنبالش تو نت گشتم گیرش نیاوردم و لینکا خراب بود
          اگر نمونه کدش رو پیدا می کردم حتی با c خودم گیرشو پیدا می کردم
          اگه کسی اون پروژه رو داره دوباره بزاره لطفا !

          دیدگاه


            #6
            پاسخ : کمک برای رفع مشکل rfm12bp

            نوشته اصلی توسط talireza2005
            کد های بالا دقیقا کار می کنه ولی وقتی
            Cmd(4) = &HC620
            به
            Cmd(4) = &HC601
            تغییر میدم
            دیگه چیزی دریافت نمیشه تو گیرنده
            عزیزم من زیاد به بسکام مسلط نیستم والا شما به راحتی می تونی rfm12bرابدست بیاری تنهافرقشون را یک پایه هست واونم اگه دقیق یادم باشه موقع ارسال بود
            یک نرم افزارم هست که مقدارریجسترهارا واستون باتظیمات گرافیکی که شما بهش می دیدتولیدمی کنه فکرکنم بهتون کمک کنه
            Ali Reza Tarkesh Esfahani

            Yahoo: amt_1390@yahoo.com

            دیدگاه


              #7
              پاسخ : کمک برای رفع مشکل rfm12bp

              bp با b فرقش فقط تو تقویت کننده ی ارسال هست که اصلا مهم نیست
              مشکل سر نرخ انتقال داده هستش
              من قبلا چن تا کار با rfm12b , rfm12bp ساختم ولی تو اونا مسله سرعت مطرح نبود
              اینجا چون می خوایم صدا انتقال بدیم باید سرعت خیلی بالا باشه

              سرعتم که زیاد می کنم دیتا از دست میره ( یعنی انتقال داده انجام نمیشه نمی دونم چرراااا ؟؟

              دیدگاه


                #8
                پاسخ : کمک برای رفع مشکل rfm12bp

                نوشته اصلی توسط talireza2005
                bp با b فرقش فقط تو تقویت کننده ی ارسال هست که اصلا مهم نیست
                مشکل سر نرخ انتقال داده هستش
                من قبلا چن تا کار با rfm12b , rfm12bp ساختم ولی تو اونا مسله سرعت مطرح نبود
                اینجا چون می خوایم صدا انتقال بدیم باید سرعت خیلی بالا باشه

                سرعتم که زیاد می کنم دیتا از دست میره ( یعنی انتقال داده انجام نمیشه نمی دونم چرراااا ؟؟
                باهاش یک پروژه ساده تر اول درست کن ببین باز دیتاازدست می ره؟مثلا یک عدد بشماره واون ور روی ال سی دی نشان بده اگه درست کارکرد یعنی مال پخش صدای شما
                Ali Reza Tarkesh Esfahani

                Yahoo: amt_1390@yahoo.com

                دیدگاه

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