سلام دوستان
اگه یادتون باشه ما هرکاری کردیم نه کسی بهمون گفت که چجوری این ماژولا راه بندازیم نه راهنمایی درست و حسابیمون کردن
یکی از دوستان هم که فکر کنم خودش طراح این ماژول بوده و یا تویه شرکت atmel مدیر عامله فقط 4تا حرف بارمون کرد و گفت تو دیتا شیتش یه نمونه برنامه هست اخه اقا تا الان نزدیک n بار به سوالات مربوط به rfm12bp جواب دادن البته فکر کنم گفتن بورو دیتاشیتا نگاه کن

بخدا تویه دیتا شیت چیزی نیست اینم لینکش http://www.roboeq.com/PDF/0501013.pdf اگه برنامه توش بود به ما هم بگید
خلاصه ما یه برنامه به قیمت 60 هزار تومان خریدیم ولی زیاد ازش سر در نمیارم که داره چیکار میکنه
این برنامه فرستنده ::
[code=vb]
اینم گیرنده ::
برنامه را تست کردم دقیقا نمیدونم جواب داره میده یا نه
تو حالت معمولی میکرو فرستنده led دایما چشمک میزنه و توبه گیرنده led 3بار چشمک میزنه و بعد دایم روشن میمونه البته وقتی تغذیه ماژول قطع میشه دوباره شروع میکنه به چشمک زدن
هالا دیگه نمیدونم چجوریاست
دوستان اگه یه زحمت بکشن و یه راهنمایی کنن ممنون میشم
امیدوارم این برنامه به درد همه بخوره
اگه یادتون باشه ما هرکاری کردیم نه کسی بهمون گفت که چجوری این ماژولا راه بندازیم نه راهنمایی درست و حسابیمون کردن
یکی از دوستان هم که فکر کنم خودش طراح این ماژول بوده و یا تویه شرکت atmel مدیر عامله فقط 4تا حرف بارمون کرد و گفت تو دیتا شیتش یه نمونه برنامه هست اخه اقا تا الان نزدیک n بار به سوالات مربوط به rfm12bp جواب دادن البته فکر کنم گفتن بورو دیتاشیتا نگاه کن


بخدا تویه دیتا شیت چیزی نیست اینم لینکش http://www.roboeq.com/PDF/0501013.pdf اگه برنامه توش بود به ما هم بگید
خلاصه ما یه برنامه به قیمت 60 هزار تومان خریدیم ولی زیاد ازش سر در نمیارم که داره چیکار میکنه
این برنامه فرستنده ::
[code=vb]
$regfile = "m16def.dat"
$crystal = 16000000
'Mega16 Rf 12
'PB.2 ----------> nIRQ
'PB.3 ----------> FSK/DATA/nFFS
'PB.4 ----------> nSEL
'PB.5 ----------> nSDI
'PB.6 ----------> nSDO
'PB.7 ----------> nSCK
'PA.4 LED
Declare Sub Rfxx_wrt_cmd(byval Acmd As Word ) As Word
Declare Sub Rf12_init()
Declare Sub Rf12_send(byval Abyte As Byte)
Dim K As Integer
Dim T As Word
Dim D(10) As Byte
Rdata Alias Portb.3
Set Rdata
Config Pinb.3 = Output
Sel Alias Portb.4
Set Sel
Config Pinb.4 = Output
Sdi Alias Portb.5
Set Sdi
Config Pinb.5 = Output
Config Pinb.6 = Input
Sdo_port Alias Pinb
Sdo Alias 6
Sck Alias Portb.7
Reset Sck
Config Pinb.7 = Output
Config Pinb.2 = Input
Set Portb.2
Irq_port Alias Pinb
Irq Alias 2
Config Pina.4 = Output
Led Alias Porta.4
D(1) = 123
D(2) = 124
D(3) = 125
For K = 1 To 3
Set Led
Waitms 200
Reset Led
Waitms 200
Next K
Call Rf12_init()
'Init FIFO
Do
Set Led
Call Rfxx_wrt_cmd(&H0000) 'read status register
call Rfxx_wrt_cmd(&H8239) '!er , !ebb , Et , Es , Ex , !eb , !ew , Dc
Call Rf12_send(&Haa) 'PREAMBLE
Call Rf12_send(&Haa) 'PREAMBLE
Call Rf12_send(&Haa) 'PREAMBLE
Call Rf12_send(&H2d) 'SYNC HI BYTE
Call Rf12_send(&Hd4) 'SYNC LOW BYTE
Call Rf12_send(d(1) + 0) 'DATA BYTE 0
Call Rf12_send(d(2) + 0) 'DATA BYTE 0
Call Rf12_send(d(3) + 0) 'DATA BYTE 0
Call Rf12_send(&Haa) 'DUMMY BYTE
Call Rf12_send(&Haa) 'DUMMY BYTE
Call Rf12_send(&Haa) 'DUMMY BYTE
call Rfxx_wrt_cmd(&H8201)
Reset Led
Waitms 900
Set Led
Waitms 100
Reset Led
Loop
'____________________________________________ ___________________________________
Sub Rfxx_wrt_cmd(byval Acmd As Word )
Dim I As Byte
Reset Sck
Reset Sel
For I = 1 To 16
If Acmd.15 = 1 Then Set Sdi Else Reset Sdi
Set Sck
Shift Acmd , Left , 1
Reset Sck
Next I
Set Sel
End Sub
'____________________________________________ ___________________________________
Sub Rf12_init()
call Rfxx_wrt_cmd(&H80d7) ';//EL,EF,433band,12.0pF
call Rfxx_wrt_cmd(&H8239) ';//!er,!ebb,ET,ES,EX,!eb,!ew,DC
call Rfxx_wrt_cmd(&Ha640) ';//A140=430.8MHz
call Rfxx_wrt_cmd(&Hc647) ';//4.8kbps
call Rfxx_wrt_cmd(&H94a0) ';//VDI,FAST,134kHz,0dBm,-103dBm
call Rfxx_wrt_cmd(&Hc2ac) ';//AL,!ml,DIG,DQD4
call Rfxx_wrt_cmd(&Hca81) ';//FIFO8,SYNC,!ff,DR
call Rfxx_wrt_cmd(&Hced4) ';//SYNC=2DD4
call Rfxx_wrt_cmd(&Hc483) ';//@PWR,NO RSTRIC,!st,!fi,OE,EN
call Rfxx_wrt_cmd(&H9850) ';//!mp,9810=30kHz,MAX OUT
call Rfxx_wrt_cmd(&Hcc67) ';//OB1OB0,lpx,ddy ?DDITBW0
call Rfxx_wrt_cmd(&He000) ';//NOT USE
call Rfxx_wrt_cmd(&Hc800) ';//NOT USE
call Rfxx_wrt_cmd(&Hc400) ';//1.66MHz,2.2V
End Sub
'____________________________________________ ___________________________________
Sub Rf12_send(byval Abyte As Byte)
Dim Sent As Word
Bitwait Irq_port.irq , Reset
Sent = &HB800
Sent = Sent + Abyte
call Rfxx_wrt_cmd(sent)
End Sub
'____________________________________________ ___________________________________
$crystal = 16000000
'Mega16 Rf 12
'PB.2 ----------> nIRQ
'PB.3 ----------> FSK/DATA/nFFS
'PB.4 ----------> nSEL
'PB.5 ----------> nSDI
'PB.6 ----------> nSDO
'PB.7 ----------> nSCK
'PA.4 LED
Declare Sub Rfxx_wrt_cmd(byval Acmd As Word ) As Word
Declare Sub Rf12_init()
Declare Sub Rf12_send(byval Abyte As Byte)
Dim K As Integer
Dim T As Word
Dim D(10) As Byte
Rdata Alias Portb.3
Set Rdata
Config Pinb.3 = Output
Sel Alias Portb.4
Set Sel
Config Pinb.4 = Output
Sdi Alias Portb.5
Set Sdi
Config Pinb.5 = Output
Config Pinb.6 = Input
Sdo_port Alias Pinb
Sdo Alias 6
Sck Alias Portb.7
Reset Sck
Config Pinb.7 = Output
Config Pinb.2 = Input
Set Portb.2
Irq_port Alias Pinb
Irq Alias 2
Config Pina.4 = Output
Led Alias Porta.4
D(1) = 123
D(2) = 124
D(3) = 125
For K = 1 To 3
Set Led
Waitms 200
Reset Led
Waitms 200
Next K
Call Rf12_init()
'Init FIFO
Do
Set Led
Call Rfxx_wrt_cmd(&H0000) 'read status register
call Rfxx_wrt_cmd(&H8239) '!er , !ebb , Et , Es , Ex , !eb , !ew , Dc
Call Rf12_send(&Haa) 'PREAMBLE
Call Rf12_send(&Haa) 'PREAMBLE
Call Rf12_send(&Haa) 'PREAMBLE
Call Rf12_send(&H2d) 'SYNC HI BYTE
Call Rf12_send(&Hd4) 'SYNC LOW BYTE
Call Rf12_send(d(1) + 0) 'DATA BYTE 0
Call Rf12_send(d(2) + 0) 'DATA BYTE 0
Call Rf12_send(d(3) + 0) 'DATA BYTE 0
Call Rf12_send(&Haa) 'DUMMY BYTE
Call Rf12_send(&Haa) 'DUMMY BYTE
Call Rf12_send(&Haa) 'DUMMY BYTE
call Rfxx_wrt_cmd(&H8201)
Reset Led
Waitms 900
Set Led
Waitms 100
Reset Led
Loop
'____________________________________________ ___________________________________
Sub Rfxx_wrt_cmd(byval Acmd As Word )
Dim I As Byte
Reset Sck
Reset Sel
For I = 1 To 16
If Acmd.15 = 1 Then Set Sdi Else Reset Sdi
Set Sck
Shift Acmd , Left , 1
Reset Sck
Next I
Set Sel
End Sub
'____________________________________________ ___________________________________
Sub Rf12_init()
call Rfxx_wrt_cmd(&H80d7) ';//EL,EF,433band,12.0pF
call Rfxx_wrt_cmd(&H8239) ';//!er,!ebb,ET,ES,EX,!eb,!ew,DC
call Rfxx_wrt_cmd(&Ha640) ';//A140=430.8MHz
call Rfxx_wrt_cmd(&Hc647) ';//4.8kbps
call Rfxx_wrt_cmd(&H94a0) ';//VDI,FAST,134kHz,0dBm,-103dBm
call Rfxx_wrt_cmd(&Hc2ac) ';//AL,!ml,DIG,DQD4
call Rfxx_wrt_cmd(&Hca81) ';//FIFO8,SYNC,!ff,DR
call Rfxx_wrt_cmd(&Hced4) ';//SYNC=2DD4
call Rfxx_wrt_cmd(&Hc483) ';//@PWR,NO RSTRIC,!st,!fi,OE,EN
call Rfxx_wrt_cmd(&H9850) ';//!mp,9810=30kHz,MAX OUT
call Rfxx_wrt_cmd(&Hcc67) ';//OB1OB0,lpx,ddy ?DDITBW0
call Rfxx_wrt_cmd(&He000) ';//NOT USE
call Rfxx_wrt_cmd(&Hc800) ';//NOT USE
call Rfxx_wrt_cmd(&Hc400) ';//1.66MHz,2.2V
End Sub
'____________________________________________ ___________________________________
Sub Rf12_send(byval Abyte As Byte)
Dim Sent As Word
Bitwait Irq_port.irq , Reset
Sent = &HB800
Sent = Sent + Abyte
call Rfxx_wrt_cmd(sent)
End Sub
'____________________________________________ ___________________________________
اینم گیرنده ::
$regfile = "m8def.dat"
$crystal = 7372800
'Mega8 Rf 12
'PD.2 ----------> nIRQ
'PB.1 ----------> FSK/DATA/nFFS
'PB.2 ----------> nSEL
'PB.3 ----------> nSDI
'PB.4 ----------> nSDO
'PB.5 ----------> nSCK
'PB.0 LED
Declare Function Rfxx_wrt_cmd(byval Acmd As Word ) As Word
Declare Sub Rf12_init()
Declare Function Rf12_recv() As Byte
Dim K As Integer
Dim T As Word
Dim D(10) As Byte
Rdata Alias Portb.3
Set Rdata
Config Pinb.3 = Output
Sel Alias Portb.2
Set Sel
Config Pinb.2 = Output
Sdi Alias Portb.3
Set Sdi
Config Pinb.3 = Output
Config Pinb.4 = Input
Sdo_port Alias Pinb
Sdo Alias 4
Sck Alias Portb.5
Reset Sck
Config Pinb.5 = Output
Config Pind.2 = Input
Irq_port Alias Pind
Irq Alias 2
Config Pinb.0 = Output
Led Alias Portb.0
For K = 1 To 3
Set Led
Waitms 200
Reset Led
Waitms 200
Next K
Call Rf12_init() 'Init FIFO
T = Rfxx_wrt_cmd(&Hca81)
Set Led
Do
Set Led
T = Rfxx_wrt_cmd(&Hca83) 'Enable FIFO
D(1) = Rf12_recv()
D(2) = Rf12_recv()
D(3) = Rf12_recv()
T = Rfxx_wrt_cmd(&Hca81) 'Disable FIFO
Set Led
Waitms 100
Reset Led
Waitms 100
Loop
'____________________________________________ ___________________________________
Function Rfxx_wrt_cmd(byval Acmd As Word ) As Word
Dim I As Byte
Dim Temp As Word
Temp = 0
Reset Sck
Reset Sel
For I = 1 To 16
If Acmd.15 = 1 Then Set Sdi Else Reset Sdi
Set Sck
Shift Temp , Left , 1
If Sdo_port.sdo = 1 Then Set Temp.0
Reset Sck
Shift Acmd , Left , 1
Next I
Set Sel
Rfxx_wrt_cmd = Temp
End Function
'____________________________________________ ___________________________________
Sub Rf12_init()
T = Rfxx_wrt_cmd(&H80d7) ' El , Ef , 433band , 12.0pf
T = Rfxx_wrt_cmd(&H82d9) '!er,!ebb,ET,ES,EX,!eb,!ew,DC
T = Rfxx_wrt_cmd(&Ha640) 'A140=430.8MHz
T = Rfxx_wrt_cmd(&Hc647) '4.8kbps
T = Rfxx_wrt_cmd(&H94a0) 'VDI,FAST,134kHz,0dBm,-103dBm
T = Rfxx_wrt_cmd(&Hc2ac) 'Al , !ml , Dig , Dqd4
T = Rfxx_wrt_cmd(&Hca81) 'FIFO8,SYNC,!ff,DR
T = Rfxx_wrt_cmd(&Hced4) 'SYNC=2DD4
T = Rfxx_wrt_cmd(&Hc483) '@PWR,NO RSTRIC,!st,!fi,OE,EN
T = Rfxx_wrt_cmd(&H9850) '!mp,9810=30kHz,MAX OUT
T = Rfxx_wrt_cmd(&Hcc67) 'OB1OB0,lpx,ddy ?DDITBW0
T = Rfxx_wrt_cmd(&He000) 'NOT USE
T = Rfxx_wrt_cmd(&Hc800) 'NOT USE
T = Rfxx_wrt_cmd(&Hc400) '1.66MHz,2.2V
End Sub
'____________________________________________ ___________________________________
Function Rf12_recv() As Byte
Dim Res As Word
Dim Result As Byte
Bitwait Irq_port.irq , Reset
Res = Rfxx_wrt_cmd(&H0000)
Res = Rfxx_wrt_cmd(&Hb000)
Result = Res
Rf12_recv=Result
End Function
'____________________________________________ ___________________________________
[/code]$crystal = 7372800
'Mega8 Rf 12
'PD.2 ----------> nIRQ
'PB.1 ----------> FSK/DATA/nFFS
'PB.2 ----------> nSEL
'PB.3 ----------> nSDI
'PB.4 ----------> nSDO
'PB.5 ----------> nSCK
'PB.0 LED
Declare Function Rfxx_wrt_cmd(byval Acmd As Word ) As Word
Declare Sub Rf12_init()
Declare Function Rf12_recv() As Byte
Dim K As Integer
Dim T As Word
Dim D(10) As Byte
Rdata Alias Portb.3
Set Rdata
Config Pinb.3 = Output
Sel Alias Portb.2
Set Sel
Config Pinb.2 = Output
Sdi Alias Portb.3
Set Sdi
Config Pinb.3 = Output
Config Pinb.4 = Input
Sdo_port Alias Pinb
Sdo Alias 4
Sck Alias Portb.5
Reset Sck
Config Pinb.5 = Output
Config Pind.2 = Input
Irq_port Alias Pind
Irq Alias 2
Config Pinb.0 = Output
Led Alias Portb.0
For K = 1 To 3
Set Led
Waitms 200
Reset Led
Waitms 200
Next K
Call Rf12_init() 'Init FIFO
T = Rfxx_wrt_cmd(&Hca81)
Set Led
Do
Set Led
T = Rfxx_wrt_cmd(&Hca83) 'Enable FIFO
D(1) = Rf12_recv()
D(2) = Rf12_recv()
D(3) = Rf12_recv()
T = Rfxx_wrt_cmd(&Hca81) 'Disable FIFO
Set Led
Waitms 100
Reset Led
Waitms 100
Loop
'____________________________________________ ___________________________________
Function Rfxx_wrt_cmd(byval Acmd As Word ) As Word
Dim I As Byte
Dim Temp As Word
Temp = 0
Reset Sck
Reset Sel
For I = 1 To 16
If Acmd.15 = 1 Then Set Sdi Else Reset Sdi
Set Sck
Shift Temp , Left , 1
If Sdo_port.sdo = 1 Then Set Temp.0
Reset Sck
Shift Acmd , Left , 1
Next I
Set Sel
Rfxx_wrt_cmd = Temp
End Function
'____________________________________________ ___________________________________
Sub Rf12_init()
T = Rfxx_wrt_cmd(&H80d7) ' El , Ef , 433band , 12.0pf
T = Rfxx_wrt_cmd(&H82d9) '!er,!ebb,ET,ES,EX,!eb,!ew,DC
T = Rfxx_wrt_cmd(&Ha640) 'A140=430.8MHz
T = Rfxx_wrt_cmd(&Hc647) '4.8kbps
T = Rfxx_wrt_cmd(&H94a0) 'VDI,FAST,134kHz,0dBm,-103dBm
T = Rfxx_wrt_cmd(&Hc2ac) 'Al , !ml , Dig , Dqd4
T = Rfxx_wrt_cmd(&Hca81) 'FIFO8,SYNC,!ff,DR
T = Rfxx_wrt_cmd(&Hced4) 'SYNC=2DD4
T = Rfxx_wrt_cmd(&Hc483) '@PWR,NO RSTRIC,!st,!fi,OE,EN
T = Rfxx_wrt_cmd(&H9850) '!mp,9810=30kHz,MAX OUT
T = Rfxx_wrt_cmd(&Hcc67) 'OB1OB0,lpx,ddy ?DDITBW0
T = Rfxx_wrt_cmd(&He000) 'NOT USE
T = Rfxx_wrt_cmd(&Hc800) 'NOT USE
T = Rfxx_wrt_cmd(&Hc400) '1.66MHz,2.2V
End Sub
'____________________________________________ ___________________________________
Function Rf12_recv() As Byte
Dim Res As Word
Dim Result As Byte
Bitwait Irq_port.irq , Reset
Res = Rfxx_wrt_cmd(&H0000)
Res = Rfxx_wrt_cmd(&Hb000)
Result = Res
Rf12_recv=Result
End Function
'____________________________________________ ___________________________________
برنامه را تست کردم دقیقا نمیدونم جواب داره میده یا نه
تو حالت معمولی میکرو فرستنده led دایما چشمک میزنه و توبه گیرنده led 3بار چشمک میزنه و بعد دایم روشن میمونه البته وقتی تغذیه ماژول قطع میشه دوباره شروع میکنه به چشمک زدن
هالا دیگه نمیدونم چجوریاست
دوستان اگه یه زحمت بکشن و یه راهنمایی کنن ممنون میشم
امیدوارم این برنامه به درد همه بخوره
دیدگاه