AT91SAM7S przerwania

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Polish to

Threaded View
Witam !

W celach dydaktycznych bawię się procesorem AT91SAMS.
Nie bardzo rozumiem dwóch spraw związanych z przerwaniami.

1. Włączyłem przerwanie od Timera.
W rejestrze AIC_SMR ustawiłem SRCTYPE na "High level Sensitive"
Przerwanie działa prawidłowo. Ale tylko jeśli w nim odczytuję rejestr
TC0_SR. Jeśli tego nie robię to przerwanie wykonuje się w kółko tzn. nie
wykonuje się program główny. Z jakiego powodu tak się dzieje ?

2. Włączyłem przerwanie od PIOA.
W rejestrze AIC_SMR ustawiłem SRCTYPE na "High level Sensitive"
Wszytko działa prawidłwo.
Zmieniam SRCTYPE na "Positive edge triggered". Podobnie jak w przypadku
Timera przerwanie wykonuje się w kółko co blokuje procesor.
Dzieje się tak nawet gdy w przerwaniu wpisuję do PIOA__IDR same jedynki.
Czyli wyłączam przerwania od PIOA. Z jakiego powodu się tak dzieje ?

Paweł


Re: AT91SAM7S przerwania
Quoted text here. Click to load it

Nie znam akurat tego procka ale ogólnie w przerwaniu sprzętowym musisz
potwierdzić jego przyjęcie, wyzerować jakąś flagę, inaczej zgłasza się w
kółko

Quoted text here. Click to load it
A jesteś pewien że przerwanie obsługujesz tylko raz? Może kręcisz się w
przerwaniu aż nie zniknie zewnętrzny sygnał.

Quoted text here. Click to load it
pewnie to co w 1. ->zbocze ustawia jakąś flagę

Quoted text here. Click to load it

- czyli nowe już nie przyjdzie ale aktualne musisz do końca obsłużyć.


zbyszek



Site Timeline