Hi,
ich habe mehrere "Clients", die mit dem rfm12-Modul Daten an einen
"Master" senden. Das funktioniert problemlos. Der Master musste bisher
nicht senden.
Jetzt möchte ich vom Master eine Antwort an die Clients senden, aber das
rfm12-Modul sendet nicht richtig. Ich höre mit einem Scanner die
Übertragungen der Clients (kurzes Rauschen/Knattern). Wenn der Master
sendet, kommt nur eine Art "Plop", egal wie viele Bytes ich sende.
Außerdem ist die RFM12-Platine danach nicht mehr empfangsbereit bzw.
bleibt im Sendemodus. Ich habe die Debug-Ausgaben eingeschaltet und sehe
das hier:(Kommentiert):
1 | //Programmstart
|
2 | mode change: r //Übertragung eines Clients empfangen
|
3 | mode change: i //Idle rx
|
4 | mode change: r //Übertragung eines Clients empfangen
|
5 | mode change: i //Idle rx
|
6 | sending packet //rfm12_tx-Anweisung ausgeführt, ret=128
|
7 | mode change: t //Sender an, im Scanner hört man ein kurzes Plop.
|
8 | mode change: i //Idle rx
|
9 | sending packet //10 sec. später: Nächstes Paket soll gesendet werden. ret=128
|
10 | mode change: t //Sender an, im Scanner ist nichts mehr zu hören
|
11 | sending packet //10 sec. später: Nächstes Paket soll gesendet werden. ret=3
|
12 | sending packet //10 sec. später: Nächstes Paket soll gesendet werden ret=3
|
13 | sending packet //10 sec. später: Nächstes Paket soll gesendet werden ret=3
|
14 | usw....
|
ret= sind die Returnwerte der rfm12_tx-Funktion.
3 bedeutet, dass der tx-Buffer bereits belegt ist.
128 = 0x80 bedeutet, dass das Paket in die Warteschleife gestellt wurde.
Hat jemand einen Tipp für mich, wo ich mit der Fehlersuche beginnen
kann? Mit der Verkabelung und dem Interrupt scheint alles Ok zu sein,
sonst dürfte auch der Empfang nicht klappten bzw. die Debug-Ausgabe gar
nicht erst reagieren.
Viele Grüße,
Chris