Pytanie do znawców rfm12b....

Mar 25, 2013 2 Replies

Próbuje uruchomic odbior danych poprzez przerwanie. Metna dokumentacja do tego modulu sugeruje ze przerwanie powinien generowac przy określonym fifo fill. Fifo fill int mam ustawione na 8 bit, czyli po odbiorze calego bajtu ma generowac przerwanie. Przerwanie jest generowane przez dedykowany pin ale również posiada odpowiednia flage (ffit) w rejestrze modulu. Niestety modul generuje przerwanie na pine tylko raz przy pierwszym bajcie pakietu (zaraz za synchronizacja), zamiast przy kazdym odebranym bajcie w pakiecie. Takie zachowanie kompletnie krzyżuje mi plan odbioru bajtów w przerwaniu, bo sprowadza się do poolingu kolejnych bajtow az do konca pakietu a taki pooling chcę uniknąć. Znalazłem w sieci kilka bibliotek do rmf12b, w ktorych odbior jest robiony przez przerwanie, analiza kodu tych bib. sugeruje, że moduł powinien generowac przerwanie przy każdym odebranym bajcie. A mój generuje tylko raz,po synchronizacji na poczatku każdego pakietu. Co ciekawe flaga ffit odpowiadajaca przerwaniu na pinie w rejestrze jest ustawiana prawidłowo za każdym odebranym bajtem. Tylko czemu przewarwanie generowane jest tylko raz?


Nie znam tego modulu, ale strzelam - moze musisz zresetowac flage ffit, zeby przyszlo kolejne przerwanie?

Okazalo się że, obsługa przetrwania była za długa. Flage gasilem ale w trakcie obsługi przetrwania pojawiało się kolejne, już nie obsłużone i stad efekt był taki jakby było tylko jedno przerwanie.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required