اطلاعیه

Collapse
No announcement yet.

کد بندی rfm12

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

    کد بندی rfm12

    با سلام.
    من دنبال یه ماژول مناسب برای هواپیمای مدل هستم.
    RFM12 رو انتخاب کردم.نظر شما چیه؟؟
    اگه کسی یه برنامه بیسکام برای RFM12 با فرکانس 434 مگاهرتز داره ممنون میشم اینجا قرار بده.
    ماژول بهتر با نحوه راه اندازی بهتر کسی سراغ نداره؟؟

    #2
    پاسخ : ماژول مناسب برای هواپیمای مدل(برنامه بیسکام برای RFM12)

    سلام.
    کسی نیست راهنمایی کنه؟؟
    فقط یه کد به زبون بیسیک برای rfm12 می خوام فرستنده یه عدد رو بفرسته و گیرنده روی lcd نمایش بده
    خودم یه برنامه تست کردم ولی وقتی پایه MISO رو وصل میکنم میکرو قفل میکنه!!(یه led به پورت d وصله عدد ارسالی هر 500 میلی ثانیه یه دونه اضاف میشه led چشمک میزنه و موقع وصل پایه miso همینجور ثابت روشن میمونه!!)
    این هم برنامه به زبون بیسیک برای فرکانس 434 مگاهرتز ببینید مشکلی نداره؟؟ (برنامه آقای نوری)
    فرستنده :
    کد:
    $regfile = "m16def.dat"
    $crystal = 1000000
    
                             '
    Dim Spi_tx_wrd As Word
    Dim Spi_tx_l As Byte At Spi_tx_wrd Overlay
    Dim Spi_tx_h As Byte At Spi_tx_wrd + 1 Overlay
    Dim Bata As Byte
    Dim Spi_rx_wrd As Word
    Dim Spi_rx_l As Byte At Spi_rx_wrd Overlay
    Dim Spi_rx_h As Byte At Spi_rx_wrd + 1 Overlay
    Config Portd = Output
    Config Portb.4 = Output
    Config Portb.5 = Output
    Config Portb.6 = Input
    Config Portb.7 = Output
    Config Portb.0 = Input
    Nirq Alias Pinb.0
    Rfm12_sdi Alias Portb.5
    Rfm12_cs Alias Portb.4
    Rfm12_sdo Alias Pinb.6
    Rfm12_sck Alias Portb.7
    Set Rfm12_cs
    Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , _
    Polarity = Low , Phase = 0 , Clockrate = 16 , Noss = 1
    Spiinit
    Set Porta.0
    Waitms 500
    Reset Porta.0
    Gosub Rfm12_int
    
    Bata = 1
    Do
    Portd = Bata
    Gosub Tx_on
    Gosub Rfm_12_transmitt
    Waitms 500
    Incr Bata
    Loop
    
    
    
    
    
    
    
    
    
    Rfm12_spi_wrt:
    
    Reset Rfm12_cs
    Spi_rx_h = Spimove(spi_tx_h)
    Spi_rx_l = Spimove(spi_tx_l)
    Set Rfm12_cs
    Waitus 50
    Return
    
    Rfm12_int:
    
    Spi_tx_wrd = &H8097                     'tx on- for rx &h82d9
    Gosub Rfm12_spi_wrt
    Spi_tx_wrd = &H8239
    Gosub Rfm12_spi_wrt
    Spi_tx_wrd = &HA604
    Gosub Rfm12_spi_wrt
    Spi_tx_wrd = &HC647
    Gosub Rfm12_spi_wrt
    Spi_tx_wrd = &H9481
    Gosub Rfm12_spi_wrt
    Spi_tx_wrd = &HC2AC
    Gosub Rfm12_spi_wrt
    Spi_tx_wrd = &HCA81
    Gosub Rfm12_spi_wrt
    Spi_tx_wrd = &HCA83
    Gosub Rfm12_spi_wrt
    Spi_tx_wrd = &H9850
    Gosub Rfm12_spi_wrt
    Spi_tx_wrd = &HE000
    Gosub Rfm12_spi_wrt
    Spi_tx_wrd = &HC800
    Gosub Rfm12_spi_wrt
    Spi_tx_wrd = &HC040
    Gosub Rfm12_spi_wrt
    Return
    
    
    Tx_on:
    
    Spi_tx_wrd = &H8239
    Gosub Rfm12_spi_wrt
    Waitus 50
    Return
    
    Rfm_12_transmitt:
    Spi_tx_wrd = &HB8AA
    Gosub Rfm12_ready
    Gosub Rfm12_spi_wrt
    
    Spi_tx_wrd = &HB8AA
    Gosub Rfm12_ready
    Gosub Rfm12_spi_wrt
    
    Spi_tx_wrd = &HB8AA
    Gosub Rfm12_ready
    Gosub Rfm12_spi_wrt
    
    Spi_tx_wrd = &HB82D
    Gosub Rfm12_ready
    Gosub Rfm12_spi_wrt
    
    Spi_tx_wrd = &HB8D4
    Gosub Rfm12_ready
    Gosub Rfm12_spi_wrt
    
    Spi_tx_wrd = &HB800 + Bata
    Gosub Rfm12_ready                      'data
    Gosub Rfm12_spi_wrt
    
    Return
    
    
    Rx_on:
    
    Spi_tx_wrd = &H82D9
    Gosub Rfm12_spi_wrt
    
    Spi_tx_wrd = &HCA81
    Gosub Rfm12_spi_wrt
    
    Spi_tx_wrd = &HCA83
    Gosub Rfm12_spi_wrt
    Return
    
    
    Rfm12_ready:
    Reset Rfm12_cs
    Bitwait Rfm12_sdo , Set
    Return
    
    End
    گیرنده:
    کد:
    $regfile = "m8def.dat"
    $crystal = 1000000                     '
    
    
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.4 , Rs = Portd.5
    Dim Spi_tx_wrd As Word
    Dim Spi_tx_l As Byte At Spi_tx_wrd Overlay
    Dim Spi_tx_h As Byte At Spi_tx_wrd + 1 Overlay
    
    Dim Spi_rx_wrd As Word
    Dim Spi_rx_l As Byte At Spi_rx_wrd Overlay
    Dim Spi_rx_h As Byte At Spi_rx_wrd + 1 Overlay
    Dim Bata As Byte
    Config Portb.2 = Output
    Config Portb.3 = Output
    Config Portb.4 = Input
    Config Portb.5 = Output
    Config Portb.0 = Input
    Nirq Alias Pinb.0
    Rfm12_sdi Alias Portb.3
    Rfm12_cs Alias Portb.2
    Rfm12_sdo Alias Pinb.4
    Rfm12_sck Alias Portb.5
    Set Rfm12_cs
    Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , _
    Polarity = Low , Phase = 0 , Clockrate = 16 , Noss = 1
    Spiinit
    
    Waitms 400
    Gosub Rfm12_int
    Do
    Gosub Rx_on
    Gosub Rfm12_ready
    Spi_tx_wrd = &HB000
    Gosub Rfm12_spi_wrt
    Cls : Home
    Lcd Spi_rx_l
    Wait 1
    Loop
    
    
    
    
    
    
    
    Rfm12_spi_wrt:
    
    Reset Rfm12_cs
    Spi_rx_h = Spimove(spi_tx_h)
    Spi_rx_l = Spimove(spi_tx_l)
    Set Rfm12_cs
    Waitus 50
    Return
    
    Rfm12_int:
    
    Spi_tx_wrd = &H8057                     'rx on- for tx &h8239
    Gosub Rfm12_spi_wrt
    Spi_tx_wrd = &H8299
    Gosub Rfm12_spi_wrt
    Spi_tx_wrd = &HA604
    Gosub Rfm12_spi_wrt
    Spi_tx_wrd = &HC647
    Gosub Rfm12_spi_wrt
    Spi_tx_wrd = &H9480
    Gosub Rfm12_spi_wrt
    Spi_tx_wrd = &HC2AC
    Gosub Rfm12_spi_wrt
    Spi_tx_wrd = &HCA81
    Gosub Rfm12_spi_wrt
    Spi_tx_wrd = &HCA83
    Gosub Rfm12_spi_wrt
    Spi_tx_wrd = &H9850
    Gosub Rfm12_spi_wrt
    Spi_tx_wrd = &HE000
    Gosub Rfm12_spi_wrt
    Spi_tx_wrd = &HC800
    Gosub Rfm12_spi_wrt
    Spi_tx_wrd = &HC040
    Gosub Rfm12_spi_wrt
    Return
    
    
    Rx_on:
    
    Spi_tx_wrd = &H82D9
    Gosub Rfm12_spi_wrt
    
    Spi_tx_wrd = &HCA81
    Gosub Rfm12_spi_wrt
    
    Spi_tx_wrd = &HCA83
    Gosub Rfm12_spi_wrt
    Return
    
    
    Tx_on:
    Spi_tx_wrd = &H8239
    Gosub Rfm12_spi_wrt
    Waitus 50
    Return
    
    Rfm_12_transmitt:
    Spi_tx_wrd = &HB8AA
    Gosub Rfm12_ready
    Gosub Rfm12_spi_wrt
    
    Spi_tx_wrd = &HB8AA
    Gosub Rfm12_ready
    Gosub Rfm12_spi_wrt
    
    Spi_tx_wrd = &HB8AA
    Gosub Rfm12_ready
    Gosub Rfm12_spi_wrt
    
    Spi_tx_wrd = &HB82D
    Gosub Rfm12_ready
    Gosub Rfm12_spi_wrt
    
    Spi_tx_wrd = &HB8D4
    Gosub Rfm12_ready
    Gosub Rfm12_spi_wrt
    
    Spi_tx_wrd = &HB800 + Bata
    Gosub Rfm12_ready                      'data
    Gosub Rfm12_spi_wrt
    Return
    
    
    Rfm12_ready:
    Reset Rfm12_cs
    Bitwait Rfm12_sdo , Set
    Return
    
    
    
    End

    دیدگاه


      #3
      پاسخ : ماژول مناسب برای هواپیمای مدل(برنامه &

      سلام.
      بالاخره از rfm12 جواب گرفتم با کدهایی که تو دیتاشیت نوشته.
      حالا یه مشکل دارم.
      سرعت انتقال به نظرم کمه مثلا یه عدد رو که میفرستم بعد از 1.5 تا 2 ثانیه میرسه به گیرنده.فاصله گیرنده فرستنده هم از 10 سانت کمتر هست.
      این ماژولها کلا اینجوری هستن یا من برنامه رو اشتباه نوشتم؟؟
      در ضمن چطوری میتونم یک جمله یا حرف رو بفرستم؟

      دیدگاه


        #4
        پاسخ : ماژول مناسب برای هواپیمای مدل(برنامه بیسکام برای RFM12)

        سلام.
        یه سوال دیگه:
        من میخوام دیتام رو کد بندی کنم مثلا یه کد 20 بیتی بفرستم که 4 بیت اول باشه برای کد و بقیش اطلاعات.
        چطور میتونم 20 بیت اصلاعات رو بفرستم و بعد تو گیرنده 20 بیت رو پشت سر هم داشته باشم؟

        راستی این هم برنامه ای که ازش جواب گرفتم (rfm12 434mhz):

        گیرنده:

        کد:
        $regfile = "m8def.dat"
        $crystal = 1000000                     '
        
        $hwstack = 32                        ' default use 32 for the hardware stack
        
        $swstack = 10                        ' default use 10 for the SW stack
        
        $framesize = 40                       ' default use 40 for the frame space
        
        Config Lcd = 16 * 2
        Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.4 , Rs = Portd.5
        Dim Spi_tx_wrd As Word
        Dim Spi_tx_l As Byte At Spi_tx_wrd Overlay
        Dim Spi_tx_h As Byte At Spi_tx_wrd + 1 Overlay
        
        Dim Spi_rx_wrd As Word
        Dim Spi_rx_l As Byte At Spi_rx_wrd Overlay
        Dim Spi_rx_h As Byte At Spi_rx_wrd + 1 Overlay
        Dim Bata As Byte
        Config Portb.2 = Output
        Config Portb.3 = Output
        Config Portb.4 = Input
        Config Portb.5 = Output
        Config Portb.0 = Input
        Nirq Alias Pinb.0
        Rfm12_sdi Alias Portb.3
        Rfm12_cs Alias Portb.2
        Rfm12_sdo Alias Pinb.4
        Rfm12_sck Alias Portb.5
        Set Rfm12_cs
        Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , _
        Polarity = Low , Phase = 0 , Clockrate = 16 , Noss = 1
        Spiinit
        
        Waitms 400
        Gosub Rfm12_int
        Do
        Gosub Rx_on
        Gosub Rfm12_ready
        Spi_tx_wrd = &HB000
        Gosub Rfm12_spi_wrt
        Cls : Home
        Lcd Spi_rx_l
        Wait 1
        Loop
        
        
        
        
        
        
        
        Rfm12_spi_wrt:
        
        Reset Rfm12_cs
        Spi_rx_h = Spimove(spi_tx_h)
        Spi_rx_l = Spimove(spi_tx_l)
        Set Rfm12_cs
        Waitus 50
        Return
        
        Rfm12_int:
        
        Spi_tx_wrd = &H80D8
        Gosub Rfm12_spi_wrt
        Spi_tx_wrd = &H82D8
        Gosub Rfm12_spi_wrt
        Spi_tx_wrd = &HA640
        Gosub Rfm12_spi_wrt
        Spi_tx_wrd = &HC647
        Gosub Rfm12_spi_wrt
        Spi_tx_wrd = &H9025
        Gosub Rfm12_spi_wrt
        Spi_tx_wrd = &HC2AC
        Gosub Rfm12_spi_wrt
        Spi_tx_wrd = &HCA80
        Gosub Rfm12_spi_wrt
        Spi_tx_wrd = &HCA83
        Gosub Rfm12_spi_wrt
        Spi_tx_wrd = &HC49B
        Gosub Rfm12_spi_wrt
        Spi_tx_wrd = &H9850
        Gosub Rfm12_spi_wrt
        Spi_tx_wrd = &HE000
        Gosub Rfm12_spi_wrt
        Spi_tx_wrd = &HC800
        Gosub Rfm12_spi_wrt
        Spi_tx_wrd = &HC000
        Gosub Rfm12_spi_wrt
        Return
        
        
        Rx_on:
        
        Spi_tx_wrd = &H82D9
        Gosub Rfm12_spi_wrt
        
        Spi_tx_wrd = &HCA81
        Gosub Rfm12_spi_wrt
        
        Spi_tx_wrd = &HCA83
        Gosub Rfm12_spi_wrt
        Return
        
        
        Tx_on:
        Spi_tx_wrd = &H8239
        Gosub Rfm12_spi_wrt
        Waitus 50
        Return
        
        Rfm_12_transmitt:
        Spi_tx_wrd = &HB8AA
        Gosub Rfm12_ready
        Gosub Rfm12_spi_wrt
        
        Spi_tx_wrd = &HB8AA
        Gosub Rfm12_ready
        Gosub Rfm12_spi_wrt
        
        Spi_tx_wrd = &HB8AA
        Gosub Rfm12_ready
        Gosub Rfm12_spi_wrt
        
        Spi_tx_wrd = &HB82D
        Gosub Rfm12_ready
        Gosub Rfm12_spi_wrt
        
        Spi_tx_wrd = &HB8D4
        Gosub Rfm12_ready
        Gosub Rfm12_spi_wrt
        
        Spi_tx_wrd = &HB800 + Bata
        Gosub Rfm12_ready                      'data
        Gosub Rfm12_spi_wrt
        Return
        
        
        Rfm12_ready:
        Reset Rfm12_cs
        Bitwait Rfm12_sdo , Set
        Return
        
        
        
        End
        فرستنده:

        کد:
        $regfile = "m16def.dat"
        $crystal = 1000000
        
                                 '
        Dim Spi_tx_wrd As Word
        Dim Spi_tx_l As Byte At Spi_tx_wrd Overlay
        Dim Spi_tx_h As Byte At Spi_tx_wrd + 1 Overlay
        Dim Bata As Byte
        Dim Spi_rx_wrd As Word
        Dim Spi_rx_l As Byte At Spi_rx_wrd Overlay
        Dim Spi_rx_h As Byte At Spi_rx_wrd + 1 Overlay
        Config Portd = Output
        Config Portb.4 = Output
        Config Portb.5 = Output
        Config Portb.6 = Input
        Config Portb.7 = Output
        Config Portb.0 = Input
        Nirq Alias Pinb.0
        Rfm12_sdi Alias Portb.5
        Rfm12_cs Alias Portb.4
        Rfm12_sdo Alias Pinb.6
        Rfm12_sck Alias Portb.7
        Set Rfm12_cs
        Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , _
        Polarity = Low , Phase = 0 , Clockrate = 16 , Noss = 1
        Spiinit
        Set Porta.0
        Waitms 500
        Reset Porta.0
        Gosub Rfm12_int
        
        Bata = 1
        Do
        Portd = Bata
        Gosub Tx_on
        Gosub Rfm_12_transmitt
        Waitms 500
        Incr Bata
        Loop
        
        
        
        
        
        
        
        
        
        Rfm12_spi_wrt:
        
        Reset Rfm12_cs
        Spi_rx_h = Spimove(spi_tx_h)
        Spi_rx_l = Spimove(spi_tx_l)
        Set Rfm12_cs
        Waitus 50
        Return
        
        Rfm12_int:
        
        Spi_tx_wrd = &H80D8
        Gosub Rfm12_spi_wrt
        Spi_tx_wrd = &H8208
        Gosub Rfm12_spi_wrt
        Spi_tx_wrd = &HA640
        Gosub Rfm12_spi_wrt
        Spi_tx_wrd = &HC647
        Gosub Rfm12_spi_wrt
        Spi_tx_wrd = &HC2AC
        Gosub Rfm12_spi_wrt
        Spi_tx_wrd = &HCA80
        Gosub Rfm12_spi_wrt
        Spi_tx_wrd = &HCA83
        Gosub Rfm12_spi_wrt
        Spi_tx_wrd = &HC49B
        Gosub Rfm12_spi_wrt
        Spi_tx_wrd = &H9850
        Gosub Rfm12_spi_wrt
        Spi_tx_wrd = &HE000
        Gosub Rfm12_spi_wrt
        Spi_tx_wrd = &HC80E
        Gosub Rfm12_spi_wrt
        Spi_tx_wrd = &HC000
        Gosub Rfm12_spi_wrt
        Return
        
        
        Tx_on:
        
        Spi_tx_wrd = &H8239
        Gosub Rfm12_spi_wrt
        Waitus 50
        Return
        
        Rfm_12_transmitt:
        Spi_tx_wrd = &HB8AA
        Gosub Rfm12_ready
        Gosub Rfm12_spi_wrt
        
        Spi_tx_wrd = &HB8AA
        Gosub Rfm12_ready
        Gosub Rfm12_spi_wrt
        
        Spi_tx_wrd = &HB8AA
        Gosub Rfm12_ready
        Gosub Rfm12_spi_wrt
        
        Spi_tx_wrd = &HB82D
        Gosub Rfm12_ready
        Gosub Rfm12_spi_wrt
        
        Spi_tx_wrd = &HB8D4
        Gosub Rfm12_ready
        Gosub Rfm12_spi_wrt
        
        Spi_tx_wrd = &HB800 + Bata
        Gosub Rfm12_ready                      'data
        Gosub Rfm12_spi_wrt
        
        Return
        
        
        Rx_on:
        
        Spi_tx_wrd = &H82D9
        Gosub Rfm12_spi_wrt
        
        Spi_tx_wrd = &HCA81
        Gosub Rfm12_spi_wrt
        
        Spi_tx_wrd = &HCA83
        Gosub Rfm12_spi_wrt
        Return
        
        
        Rfm12_ready:
        Reset Rfm12_cs
        Bitwait Rfm12_sdo , Set
        Return
        
        End
        در ضمن من ماژول رو زمانی که با 3.3 ولت راه اندازی میکنم جواب نمیده ولی وقتی با 5 ولت راه اندازی می کنم جواب میده!!!!

        دیدگاه


          #5
          پاسخ : کد بندی rfm12

          با سلام
          می توانید از لینک زیر یک جزوه کامل به زبان فارسی در رابطه با ماژول rfm12b را بیابید.امیدوارم به کارتون بیاد
          http://5volt.ir/avr/avr1/62-%D8%A7%D...87-RFM12B.html

          از بخش های دیگه این سایت هم دیدن کنید مطالب جالبی داره

          دیدگاه


            #6
            پاسخ : کد بندی rfm12

            نوشته اصلی توسط سارا امامی فر
            سلام اگر امکان دارد نحوه دانلود آنرا بیان نمائید
            سلام شما میتونید روی لینک زیر راست کلیک بکنید و ( save target as) یا روی لینک زیر چپ کلیک کنید.حجمشم 7mb هست.
            http://www.5volt.tk/sup/rfm12bp_data(www.5volt.ir).rar
            اگر دين نداري حداقل آزاده باش <امام حسين (ع)>

            دیدگاه

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