Marek
Guest
Tue Mar 26, 2013 12:59 am
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?
--
Marek
Adam Wysocki
Guest
Tue Mar 26, 2013 11:13 am
Marek <fake@fakeemail.com> wrote:
Quote:
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?
--
"Project Manager to człowiek, który myśli, że jak weźmie
dziewięć kobiet, to urodzą dziecko w miesiąc."
Marek
Guest
Tue Mar 26, 2013 7:47 pm
On Tue, 26 Mar 2013 09:13:19 +0000 (UTC), gof@somewhere.invalid (Adam
Wysocki) wrote:
Quote:
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.
--
Marek