Pytanie do znawców rfm12b....

Mar 25, 2013 2 Replies
Jump to replies (2)

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