Forum: Mikrocontroller und Digitale Elektronik RFM12 Funkmodul --> Nur 2 Bytes (Interrupt / Bascom)


von Fitulakitu (Gast)


Lesenswert?

Hallo,

ich habe folgendes Problem:

Ich verwende einen Atmega32 mit einem RFM12 Funkmodul. Den Empfang 
möchte ich gerne über einen Interrupt realisieren. Dazu habe ich Nirq 
und Int0 verbunden. Wenn nun Nirq low wird, wird meine Interruptroutine 
aufgerufen. In dieser steht momentan nur folgendes:


Call Rf_cmd(&H82d8)

   For N = 1 To 10

         Spiin Fifo(1) , 3
         Print "Fifo_1: " ; Fifo(1)
         Print "Fifo_2: " ; Fifo(2)
         Print "Fifo_3: " ; Chr(fifo(3))

   Next N

   Call Rf_cmd(&H0000)
   Call Rf_cmd(&Hca81)
   Call Rf_cmd(&Hca83)

Ich lasse mir also die beiden Statusbytes ausgeben (nur zur Info) und 
danach das Datenbyte (bereits umgewandelt). Das Problem ist nun, dass 
ich nur 2 Bytes korrekt empfange und dann nur noch "NUL". Kann mir 
jemand weiterhelfen, wie ich alle Bytes vernünftig empfange?

Nebenbei habe ich dann noch ein zweite Frage: NIRQ wird ja bei mehreren 
Events ausgelöst. Ich möchte dann also vorab den Status abfragen, ob es 
ausgelöst wurde, weil Daten im FIFO empfangen wurden. Und nur dann soll 
der FIFO abgeholt werden. Kann mir jemand sagen, wie ich das lösen kann? 
Das wichtigere ist aber ersteinmal mein Hauptproblem (oben)

Vielen Dank!

von Sauger (Gast)


Lesenswert?

Tach,

nIrq wird pro empfangenem Byte ausgelöst, wozu die Schleife. Poste 
nachvollziehbaren Code. Am besten das ganze Projekt (als Anhang).

MfG

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.