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.