Hallo Ich hab mir eine Funkübertragung mit einem RFM01 und einem RFM02 Modul aufgebaut welche soweit auch ganz gut funktioniert Wenn ich das Empfangen starte hängt der µC jedoch in einer Schleife, bis die Daten ankommen ( ==> while(!(RFPIN&(1<<SDO))); ) Wenn ich eine Interrupt Routine erstelle bekomme ich am nIRQ Pin jedoch immer ein "High" (der Pin geht nie auf "Low"). Hat vl irgendjemand eine Lösung welche mit Interrupts funktioniert? SDO mit einem Interrupt abfragen haut nicht so wirklich hin, da am SDO Pin auch die Daten rauskommen.
Hat noch niemand hier die Module mit Interrupts betrieben?
Doch. RFM02 => RFM01. Interrupt funktioniert, auf beiden Seiten.
Braucht man irgendeine bestimmte Einstellung damit das Funktioniert? Weil nIRQ bleibt bei mir immer auf High (Ich muss auch vor der Übertragung den SDO Pin anstatt den im Datenblatt beschriebenen nIRQ Pin abfragen) Kannst du vl einen kurzen Codeschnippsel posten? Nur welchen Pin du abfragst und wie du dann den FIFO ausliest. Funktionieren tut es bei mir ja nur bekomme ich diese while Schleife nicht weg.
codebeispiel
Wenn du den nIRQ in einer While Schleife abfragst, ist es evtl. ein Timing-Problem. Der nIRQ gibt soweit ich weiß nur einen kurzen Low Impuls bei einem Ereignis aus. Meik
A. K. wrote:
> codebeispiel
danke
sehe ich das richtig das du den Fifo Fill Interrupt nicht direkt
abfragst sonndern bei einem Interrupt das Statusregister liest und wenn
ein Fifo Fill Interrupt vorliegt du dir die Daten aus dem Fifo holst?
"Abschalten" kann man den nIRQ Pin nicht, sehe ich das richtig? Weil
irgendwie tut der bei mir gar nichts. Oder kann das daran liegen das der
Fifo Fill Interrupt bei mir aktiviert ist?
Benjamin K. wrote: > sehe ich das richtig das du den Fifo Fill Interrupt nicht direkt > abfragst sonndern bei einem Interrupt das Statusregister liest und wenn > ein Fifo Fill Interrupt vorliegt du dir die Daten aus dem Fifo holst? Ja. Ich weiss allerdings nicht was du mit "den Fifo Fill Interrupt direkt abfragen" meinst. > "Abschalten" kann man den nIRQ Pin nicht, sehe ich das richtig? Weil Nö, wozu auch. Den IRQ-Input vom Controller kannst du ja abschalten oder weglassen, wenn der dich stört. Viel mehr kann ich zu deinem Problem nicht beitragen, schon allein weil du nicht sonderlich viel Information rausrückst und mir deine Prosa nicht wirklich verständlich ist.
der SDO Ausgang ist gleichzeitig auch der Fifo Fill Interrupt Ausgang, welchen ich in meiner while Schleife abfrage. Das meine ich mit direkt abfragen. Naja mit etwas Glück kann ich heute mal ein wenig mit nem Oszi messen dann sehe ich ob sich am nIRQ Pin wirklich überhaupt gar nichts tut so wie es jetzt scheint.
Hab jetzt das ganze noch einmal mit einem Oszilloskop durchgemessen. Komischerweise scheint mein nIRQ Pin immer Low zu sein und der FFIT Pin scheint immer High zu sein. Eigentlich sollte das jedoch umgekehrt sein da nIRQ Low aktiv ist und FFIT High aktiv. Hat jemand eine Idee, woran das liegen kann?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.