Witam
Po przeczytaniu wszystkich postów na temat RFM12B (nie tylko na elektrodzie), poprzerabiałem kod któregoś z kolegów na forum pod swoje potrzeby i sprzęt.
Męczę się już 2 dzień i mimo że chciałem sam rozwiazać problem, proszę o pomoc.
Mianowicie chciałbym abyście zerknęli w kody i ewentualnie upatrzyli nieprawidłowości
Dodam że elektronika na 99% jest dobrze a sam odbiornik nie reaguje.
Poniżej kody.
NADAJNIK
Odbiornik:
Po przeczytaniu wszystkich postów na temat RFM12B (nie tylko na elektrodzie), poprzerabiałem kod któregoś z kolegów na forum pod swoje potrzeby i sprzęt.
Męczę się już 2 dzień i mimo że chciałem sam rozwiazać problem, proszę o pomoc.
Mianowicie chciałbym abyście zerknęli w kody i ewentualnie upatrzyli nieprawidłowości
Dodam że elektronika na 99% jest dobrze a sam odbiornik nie reaguje.
Poniżej kody.
NADAJNIK
$regfile = "attiny2313.dat"
$crystal = 8000000
'-----------------------------------------------------
Dim Dana As Byte
Dim I As Byte
Dim Data_out As Word
Dim Data_in As Word
Dim Data_to_send As Byte
Dim Received_data As Byte
Dim D1 As Byte
Dim D2 As Byte
Dim D3 As Byte
Dim D4 As Byte
'-----------------------------------------------------
Rf_nirq Alias Pinb.0 'in
Rf_sdo Alias Pinb.1 'in
Rf_nsel Alias Portb.2 'out
Rf_sck Alias Portb.3 'out
Rf_sdi Alias Portb.4 'out
'-----------------------------------------------------
'Portb = &B00010111
Portb = &B00000011
Config Portb = &B00011100
Config Portd = Output
Waitms 100
Gosub Rf12_init
Waitms 100
Gosub Rf12_init
Do
Dana = 85
D1 = Dana
D4 = D1
Data_out = &H0000
Gosub Rf12_wrt_cmd_2
Data_out = &H8239 '!er,!ebb,et,es,ex,!eb,!ew,dc
Gosub Rf12_wrt_cmd_2
Data_to_send = &HAA
Gosub Rf12_send
Data_to_send = &HAA
Gosub Rf12_send
Data_to_send = &HAA
Gosub Rf12_send
Data_to_send = &H2D
Gosub Rf12_send
Data_to_send = &HD4
Gosub Rf12_send
Data_to_send = D1
Gosub Rf12_send
Data_to_send = D2
Gosub Rf12_send
Data_to_send = D3
Gosub Rf12_send
Data_to_send = D4
Gosub Rf12_send
Data_to_send = &HAA
Gosub Rf12_send
Data_to_send = &HAA
Gosub Rf12_send
Data_to_send = &HAA
Gosub Rf12_send
Data_out = &H8201
Gosub Rf12_wrt_cmd_2
Set Portd.0
Wait 1
Reset Portd.0
Wait 1
Waitms 10
Loop
'-----------------------------------------------------
Rf12_init:
Data_out = &H80D7 'El,Ef,433band,12.0pf 80E8 12.5pf
Gosub Rf12_wrt_cmd_2
Data_out = &H8239 '!er,!ebb,et,es,ex,!eb,!ew,dc 8298 er,!ebb,!et,es,ex,!eb,!ew,!dc
Gosub Rf12_wrt_cmd_2
Data_out = &HA640 '433MHz
Gosub Rf12_wrt_cmd_2
Data_out = &HC647 '4.8kbps C611 19.2kbps
Gosub Rf12_wrt_cmd_2
Data_out = &H94A0 'VDI,FAST,134kHz,0dBm,-103dBm
Gosub Rf12_wrt_cmd_2
Data_out = &HC2AC 'AL,!ml,DIG,DQD4
Gosub Rf12_wrt_cmd_2
Data_out = &HCA81 'FIFO8,SYNC,!ff,DR
Gosub Rf12_wrt_cmd_2
Data_out = &HCED4 'SYNC=2DD4;
Gosub Rf12_wrt_cmd_2
Data_out = &HC483 '@PWR,NO RSTRIC,!st,!fi,OE,EN
Gosub Rf12_wrt_cmd_2
Data_out = &H9850 '!mp,90kHz,MAX OUT
Gosub Rf12_wrt_cmd_2
Data_out = &HCC77 'OB1,OB0, LPX,!ddy,DDIT,BW0 CC17 !OB1,!OB0, LPX,!ddy,DDIT,BW0
Gosub Rf12_wrt_cmd_2
Data_out = &HE000 'NOT USE
Gosub Rf12_wrt_cmd_2
Data_out = &HC800 'NOT USE
Gosub Rf12_wrt_cmd_2
Data_out = &HC040 '1.66MHz,
Gosub Rf12_wrt_cmd_2
Return
'-----------------------------------------------------
Rf12_send:
!Wait_for_nIRQ_low_1:
sbic Pinb, 0
jmp Wait_for_nIRQ_low_1
lds R16, {Data_to_send}
sts {Data_Out+0}, R16
ldi R16, &HB8
sts {Data_Out+1}, R16
Gosub Rf12_wrt_cmd_2
Return
'-----------------------------------------------------
'-----------------------------------------------------
Rf12_wrt_cmd_2:
Rf_sck = 0
Rf_nsel = 0
Data_in = 0
For I = 0 To 15
Rf_sdi = Data_out.15
Shift Data_out , Left , 1
Rf_sck = 1
Shift Data_in , Left , 1
Data_in.0 = Rf_sdo
Rf_sck = 0
Next I
Rf_sck = 0
Rf_nsel = 1
ReturnOdbiornik:
$regfile = "attiny2313.dat"
$crystal = 8000000
'-----------------------------------------------------
Dim I As Byte
Dim Data_out As Word
Dim Data_in As Word
Dim Data_to_send As Byte
Dim Received_data As Byte
Dim D1 As Byte
Dim D2 As Byte
Dim D3 As Byte
Dim D4 As Byte
'-----------------------------------------------------
Rf_nirq Alias Pinb.0 'in
Rf_sdo Alias Pinb.1 'in
Rf_nsel Alias Portb.2 'out
Rf_sck Alias Portb.3 'out
Rf_sdi Alias Portb.4 'out
'-----------------------------------------------------
'Portb = &B00010111
Portb = &B00000011
Config Portb = &B00011100
Config Portd.1 = Output
Enable Interrupts
Set Portd.1
Wait 1
Reset Portd.1
Wait 1
Waitms 100
Gosub Rf12_init
Waitms 100
Gosub Rf12_init
Do
Data_out = &H8298 '!er,!ebb,et,es,ex,!eb,!ew,dc 8298 er,!ebb,!et,es,ex,!eb,!ew,!dc
Gosub Rf12_wrt_cmd_2
Data_out = &HCA81
Gosub Rf12_wrt_cmd_2
Data_out = &HCA83
Gosub Rf12_wrt_cmd_2
Waitms 1
Gosub Rf12_receive
D1 = Received_data
Data_out = &HCA81
Gosub Rf12_wrt_cmd_2
Data_out = &HCA83
Gosub Rf12_wrt_cmd_2
If D1 = 85 Then
Toggle Portd.1 ' zamien stan diody
Wait 1
End If
Loop
'-----------------------------------------------------
Rf12_init:
Data_out = &H80D7 'El,Ef,433band,12.0pf 80E8 12.5pf
Gosub Rf12_wrt_cmd_2
Data_out = &H8299 '!er,!ebb,et,es,ex,!eb,!ew,dc 8298 er,!ebb,!et,es,ex,!eb,!ew,!dc
Gosub Rf12_wrt_cmd_2
Data_out = &HA640 '433MHz
Gosub Rf12_wrt_cmd_2
Data_out = &HC647 '4.8kbps C611 19.2kbps
Gosub Rf12_wrt_cmd_2
Data_out = &H94A0 'VDI,FAST,134kHz,0dBm,-103dBm
Gosub Rf12_wrt_cmd_2
Data_out = &HC2AC 'AL,!ml,DIG,DQD4
Gosub Rf12_wrt_cmd_2
Data_out = &HCA81 'FIFO8,SYNC,!ff,DR
Gosub Rf12_wrt_cmd_2
Data_out = &HCED4 'SYNC=2DD4;
Gosub Rf12_wrt_cmd_2
Data_out = &HC483 '@PWR,NO RSTRIC,!st,!fi,OE,EN
Gosub Rf12_wrt_cmd_2
Data_out = &H9850 '!mp,90kHz,MAX OUT
Gosub Rf12_wrt_cmd_2
Data_out = &HCC77 'OB1,OB0, LPX,!ddy,DDIT,BW0 CC17 !OB1,!OB0, LPX,!ddy,DDIT,BW0
Gosub Rf12_wrt_cmd_2
Data_out = &HE000 'NOT USE
Gosub Rf12_wrt_cmd_2
Data_out = &HC800 'NOT USE
Gosub Rf12_wrt_cmd_2
Data_out = &HC040 '1.66MHz,
Gosub Rf12_wrt_cmd_2
Return
'-----------------------------------------------------
Rf12_send:
!Wait_for_nIRQ_low_1:
sbic Pinb, 0
jmp Wait_for_nIRQ_low_1
lds R16, {Data_to_send}
sts {Data_Out+0}, R16
ldi R16, &HB8
sts {Data_Out+1}, R16
Gosub Rf12_wrt_cmd_2
Return
'-----------------------------------------------------
Rf12_receive:
Data_out = &H0000
Gosub Rf12_wrt_cmd_2
Data_out = &HB000
Gosub Rf12_wrt_cmd_2
lds R16, {Data_In+0}
sts {Received_data}, R16
Return
'-----------------------------------------------------
Rf12_wrt_cmd_2:
Rf_sck = 0
Rf_nsel = 0
Data_in = 0
For I = 0 To 15
Rf_sdi = Data_out.15
Shift Data_out , Left , 1
Rf_sck = 1
Shift Data_in , Left , 1
Data_in.0 = Rf_sdo
Rf_sck = 0
Next I
Rf_sck = 0
Rf_nsel = 1
Return