Hallo, ich hab mich seit Tagen mit diesem Modul beschäftigt und hab es einfach nicht zum laufen gebracht, vllt kann mir einer mal helfen. Anschlussplan: ATmega 8 RFM02 SCK SCK MOSI SDI MISO n.a. SS(PortB.2) nSel Power(PortB.1) VCC das Bascom-Programm: $regfile = "m8def.dat" $crystal = 3686411 $baud = 9600 Ddrb = &B11111111 Spcr = &B01010001 Declare Function Spisend(byval Spibyte As Word) As Byte Dim I As Byte Dim J As Byte Dim K As Byte Dim Data1 As Byte Dim Data2 As Byte I = 0 Do Portb = &B00000110 Waitms 10 Print "Starte Configuration" K = Spisend(&H8f00) 10 Mhz , 8.5 Pf K = Spisend(&Hc09 Ex = 1,es=1,ea =0, eb=0, et=0,dc=0, a1=1, a0=0 K = Spisend(&Ha640) 434 MHZ Frequenz K = Spisend(&Hc809) 34,48 kbps K = Spisend(&Hb2) -6DB K = Spisend(&Hc220) dwc=1, ebs=1 K = Spisend(&Hc6) Data Transmit Command Print "Sende Preamble" K = Spisend(&Haa) K = Spisend(&Haa) K = Spisend(&Haa) K = Spisend(&H2d) K = Spisend(&Hd4) Print "Sende Daten" K = Spisend(10) Waitms 1 K = Spisend(11) K = Spisend(&Hc001) Print "Erfolgreich Gesendet" Portb = &B00000000 Loop Function Spisend(byval Spibyte As Word) As Byte Spdr = Spibyte End Function
Dein Spisend sendet ein Byte, kein Wort, akzeptiert aber ein Wort, dessen MSB folglich über Bord geht. Ausserdem dürfte korrektes Senden per SPI auch in Bascom anders aussehen. Immerhin solltest du wohl abwarten bis es raus ist bevor das nächste Byte drin landet.
sry das ich mich jetzt erst wieder melde, habe die byte's durch word's ersetzt, und bei der SPI Funktion habe ich noch Do:Loop Until SPSR.SPIF=1 eingefügt. zudem hab ich die SPI-Funktion mittels 2 AVR auf Funktion überprüft, dass es nun an der SPI-Funktion liegt kann ich aussließen, glaube eher das es an den einzustellenden Hexzahlen liegt oder an der Reihenfolge.
sry das ich mich erst jetzt wieder melde, habe aber den sender soweit ich das überprüfen kann zum laufen gebracht, bin jetzt am empfänger dran. wie du unten sehen wirst habe ich die word's wieder durch bytes ersetzt und eben dann 2 bytes gesendet, da das spi interface (SPDR) nur 1 byte speicherkapazität hat. da ich im forum nicht über dem rfm02 finde stell ich mal den code rein Atmega8 RFM02 SCK SCK MOSI SDI Portb.1 FSK Portb.2 nsel INT 0 nirq $regfile = "m8def.dat" $crystal = 3686411 $baud = 115200 Ddrd = &B10000000 Ddrb = &B11101111 Portd = &B00000100 Mcucr = &B00000010 Spcr = &B01010000 Sreg.7 = 1 Declare Function Spisend(byval Spibyte As Byte) As Byte Declare Function Fsksend(byval Data1 As Byte) As Byte Dim I As Byte Dim J As Byte Dim K As Byte Do Portb.2 = 1 waitms 100 Portb.2 = 0 'Initialisierung' Print "Intitialisierung" K = Spisend(&B11001100) K = Spisend(&B00000000) K = Spisend(&B10001011) K = Spisend(&B01100010) K = Spisend(&B10100110) K = Spisend(&B01000000) K = Spisend(&B11001000) K = Spisend(&B01000111) K = Spisend(&B11000010) K = Spisend(&B00100000) K = Spisend(&B11000000) K = Spisend(&B00000001) 'Starte Übertragung' K = Spisend(&B11000000) K = Spisend(&B00111001) 'Über FSK daten Senden' Print "Daten Übertragen" K = Fsksend(&B10101010) K = Fsksend(&B10101010) K = Fsksend(&B10101010) K = Fsksend(&B00101101) K = Fsksend(&B11010100) K = Fsksend(25) K = Fsksend(&B10101010) 'Alles Schließen' K = Spisend(&B11000000) K = Spisend(&B00000001) Portb.2 = 1 Print "Senden beendet" Loop Function Spisend(byval Spibyte As Byte) As Byte Spdr = Spibyte Do : Loop Until Spsr.spif = 1 Spisend = Spdr End Function Function Fsksend(byval Data1 As Byte) As Byte J = 7 For I = 0 To 7 Do : Loop Until Gifr.6 = 1 If Data1.j = 1 Then Portb.1 = 1 Else Portb.1 = 0 End If J = J - 1 Gifr.6 = 1 Next I Portb.1 = 0 End Function Spisend = Spdr könnte man zugar weglassen da man vom slave nichts empfängt
Gast
#1689216
Moin Philipp, ich habe hier seit gut 3 Monaten einen RFM02 im Dauerbetrieb. Den Code hänge ich mal an. Ist sicher nicht der Gipfel der Eleganz und noch weit weg von fertig, aber er funktioniert. Vielleicht nutzt es...
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | |
83 | |
84 | |
85 | |
86 | |
87 | |
88 | |
89 | |
90 | |
91 | |
92 | |
93 | |
94 | |
95 | |
96 | |
97 | |
98 | |
99 | |
100 | |
101 | |
102 | |
103 | |
104 | |
105 | |
106 | |
107 | |
108 | |
109 | |
110 | |
111 | |
112 | |
113 | |
114 | |
115 | |
116 | |
117 | |
118 | |
119 | |
120 | |
121 | |
122 | |
123 | |
124 | |
125 | |
126 | |
127 | |
128 | |
129 | |
130 | |
131 | |
132 | |
133 | |
134 | |
135 | |
136 | |
137 | |
138 | |
139 | |
140 | |
141 | |
142 | |
143 | |
144 | |
145 | |
146 | |
147 | |
148 | |
149 | |
150 | |
151 | |
152 | |
153 | |
154 | |
155 | |
156 | |
157 | |
158 | |
159 | |
160 | |
161 | |
162 | |
163 | |
164 | |
165 | |
166 | |
167 | |
168 | |
169 | |
170 | |
171 | |
172 | |
173 | |
174 | |
175 | |
176 | |
177 | |
178 | |
179 | |
180 | |
181 | |
182 | |
183 | |
184 | |
185 | |
186 | |
187 | |
188 | |
189 | |
190 | |
191 | |
192 | |
193 | |
194 | |
195 | |
196 | |
197 | |
198 | |
199 | |
200 | |
201 | |
202 | |
203 | |
204 | |
205 | |
206 | |
207 | |
208 | |
209 | |
210 | |
211 | |
212 | |
213 | |
214 | |
215 | |
216 | |
217 | |
218 | |
219 | |
220 | |
221 | |
222 | |
223 | |
224 | |
225 | |
226 | |
227 | |
228 | |
229 | |
230 | |
231 | |
232 | |
233 | |
234 | |
235 | |
236 | |
237 | |
238 | |
239 | |
240 | |
241 | |
242 | |
243 | |
244 | |
245 | |
246 | |
247 | |
248 | |
249 | |
250 | |
251 | |
252 | |
253 | |
254 | |
255 | |
256 | |
257 | |
258 | |
259 | |
260 | |
261 | |
262 | |
263 | |
264 | |
265 | |
266 | |
267 | |
268 | |
269 | |
270 | |
271 | |
272 | |
273 | |
274 | |
275 | |
276 | |
277 | |
278 | |
279 | |
280 | |
281 | |
282 | |
283 | |
284 | |
285 | |
286 | |
287 | |
288 | |
289 | |
290 | |
291 | |
292 | |
293 | |
294 | |
295 | |
296 | |
297 | |
298 | |
299 | |
300 | |
301 | |
302 | |
303 | |
304 | |
305 | |
306 | |
307 | |
308 | |
309 | |
310 | |
311 | |
312 | |
313 | |
314 | |
315 | |
316 | |
317 | |
318 | |
319 | |
320 | |
321 | |
322 | |
323 | |
324 | |
325 | |
326 | |
327 | |
328 | |
329 | |
330 | |
331 | |
332 | |
333 | |
334 | |
Viel Erfolg! Ralph
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.