Forum: Mikrocontroller und Digitale Elektronik RFM01 Übertragung funktioniert nIRQ ist jedoch immer High => Interruptbetrieb nicht möglich?


von Beni (Gast)


Lesenswert?

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.

von Benjamin K. (beniskate)


Lesenswert?

Hat noch niemand hier die Module mit Interrupts betrieben?

von (prx) A. K. (prx)


Lesenswert?

Doch. RFM02 => RFM01. Interrupt funktioniert, auf beiden Seiten.

von Benjamin K. (beniskate)


Lesenswert?

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.

von (prx) A. K. (prx)


Angehängte Dateien:

Lesenswert?

codebeispiel

von Meik D. (meik)


Lesenswert?

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

von Benjamin K. (beniskate)


Lesenswert?

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?

von (prx) A. K. (prx)


Lesenswert?

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.

von Benjamin K. (beniskate)


Lesenswert?

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.

von Beni (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.