RFM01 Übertragung funktioniert nIRQ ist jedoch immer High => Interruptbetrieb nicht möglich?

Gast #1135906
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.
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.
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.
Gast
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?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.