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!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.