RFM02 hängt beim senden (Bascom)

Gast #4079965
Lesenswert?

Hallo Forengemeinde,
ich bin seit Tagen daran die Funkmodule RFM01/02 am laufen zu bekommen.
Bei dem RFM02 habe ich das problem das sich das Testprogramm was ich im 
Bascomforum gefunden habe beim senden aufhängt bzw. nicht weiter macht, 
wenn er TX einschalten soll. Hier mal das Programm:
1
' ########################################################################
2
' # RF02-Test Bascom
3
' # Pollin Funk-AVR Board - RFM02 auf dem Board
4
' ########################################################################
5

6

7
$regfile = "M16def.dat"
8
$hwstack = 32
9
$swstack = 10
10
$framesize = 40
11
$crystal = 16000000
12
$baud = 9600
13
'Baud = 19200
14

15
Config Pind.2 = Input
16
Nirq Alias Pind.2
17

18
Config Pind.7 = Output
19
Fsk Alias Portd.7
20

21
Led Alias Portd.5
22
Config Portd.5 = Output                                     'LED zur Kontrolle
23

24
Dim Count As Byte
25
Dim Temp As Byte
26
Dim Cmd(2) As Byte
27

28

29
Declare Sub Fsk_send(byval Fsk_byte As Byte)
30
Declare Sub Rf_cmd(byval Tmp As Word) As Word
31

32

33
'config SPI
34
Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 16 , Noss = 0
35
'Config Spi = Soft , Din = Pinb.4 , Dout = Portb.3 , Ss = Portb.2 , Clock = Portb.5
36

37
'init the spi
38
Spiinit
39

40
Waitms 100
41

42
Toggle Led
43

44
Print "RFM Einstellen"
45

46
Call Rf_cmd(&Hcc00)
47
Call Rf_cmd(&H8b62)                                         '433MHzband, 11.5pf, fsk90kHz, 2MHz clock
48
Call Rf_cmd(&Ha620)                                         '433.92MHz
49
Call Rf_cmd(&Hc811)                                         '19,2 kbit
50
Call Rf_cmd(&Hc220)                                         'tx bit sync
51
Call Rf_cmd(&Hc001)                                         'TX off
52
Call Rf_cmd(&Hd240)                                         'PLL 25%
53
Call Rf_cmd(&Hb300)                                         '-9 db
54
Call Rf_cmd(&He000)                                         'disable wakeup timer
55
Toggle Led
56
Print "Alles Eingestellt"
57

58
Do
59
Print "Sende Daten"
60

61
'TX an
62
Call Rf_cmd(&Hc039)
63

64
'Preamble 3x AA
65
Call Fsk_send(&Haa)
66
Call Fsk_send(&Haa)
67
Call Fsk_send(&Haa)
68
'HI/LOW Frame-Erkennung
69
Call Fsk_send(&H2d)
70
Call Fsk_send(&Hd4)
71
'Daten
72
Call Fsk_send(&H31)
73
Call Fsk_send(&H32)
74
Call Fsk_send(&H33)
75
Call Fsk_send(&H34)
76
Call Fsk_send(&H35)
77
Call Fsk_send(&H36)
78
Call Fsk_send(&H37)
79
Call Fsk_send(&H38)
80
Call Fsk_send(&H39)
81
Call Fsk_send(&H3a)
82
Call Fsk_send(&H3b)
83
Call Fsk_send(&H3c)
84
Call Fsk_send(&H3d)
85
Call Fsk_send(&H3e)
86
Call Fsk_send(&H3f)
87
Call Fsk_send(&H40)
88
Call Fsk_send(&H41)
89
Call Fsk_send(&H42)
90
Call Fsk_send(&H43)
91
Call Fsk_send(&H44)
92
Call Fsk_send(&H45)
93
Call Fsk_send(&H46)
94
Call Fsk_send(&H47)
95
Call Fsk_send(&H48)
96
Call Fsk_send(&H49)
97
Call Fsk_send(&H4a)
98
Call Fsk_send(&H4b)
99
Call Fsk_send(&H4c)
100
Call Fsk_send(&H4d)
101
Call Fsk_send(&H4e)
102
Call Fsk_send(&H4f)
103
Call Fsk_send(&H50)
104
'Frame-Ende Kennung
105
Call Fsk_send(&Haa)
106
Print "Daten gesendet"
107
'TX aus
108
Call Rf_cmd(&Hc001)                                         'TX off
109

110

111
Reset Led
112

113
Wait 2
114

115
Loop
116

117
End
118

119

120
Sub Fsk_send(byval Fsk_byte As Byte)
121
   Toggle Led
122
   For Count = 1 To 8
123
      While Nirq = 0                                        'wait NIRQ goes high
124
      Wend
125
      While Nirq = 1
126
      Wend                                                  'wait NIRQ goes low
127
      Temp = Fsk_byte And &H80
128
         If Temp = &H80 Then
129
            Set Fsk
130
            Else
131
            Reset Fsk
132
         End If
133
      Shift Fsk_byte , Left
134
   Next
135
End Sub
136

137

138
Sub Rf_cmd(byval Tmp As Word) As Word
139
Cmd(2) = Tmp And 255
140
Shift Tmp , Right , 8
141
Cmd(1) = Tmp
142

143
Spiout Cmd(1) , 2
144

145

146
End Sub

Sieht hier jemand was Falsch läuft?
Danke schonmal für eure Hilfe.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren