mikrocontroller.net

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


Autor: Beni (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Benjamin K. (beniskate)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat noch niemand hier die Module mit Interrupts betrieben?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Doch. RFM02 => RFM01. Interrupt funktioniert, auf beiden Seiten.

Autor: Benjamin K. (beniskate)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A. K. (prx)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
codebeispiel

Autor: Meik Dittmann (meik)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Benjamin K. (beniskate)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Benjamin K. (beniskate)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Beni (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.