Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Flagi przerwań w At90S2313

Sławek5
-
-
Posty:485
Rejestracja:15 sie 2003, o 16:40
Lokalizacja:Szczecin
Kontaktowanie:
Flagi przerwań w At90S2313

Postautor: Sławek5 » 9 maja 2005, o 10:11

Cześć.

Mam pytanie odnośnie przewań (wszystkich) i związanych z nimi przewań.

Jeśli nadchodzi przerwanie to jest ustawiona flaga danego przetrwania i jest ona zerowana na początku obsługi danego przerwania. Jesli są ustawione bity globalnego zezwolenia i danego przerwania to zostanie ono obsłużone.

A co będzie jeżeli nap będzie zablokowane dane przewranie (nie będzie ustawiony bit zezwolenia dla konkretnego przerwania) i nadejdzie naprzykład przepełnienie licznika lub dla zewnętrznego zbocze opadające to zostanie ustawiona flaga od tego przerwania ale nie zostanie ono obsłuzone i falga nie zostanie wyzerowana. jesli teraz odblokuję dane przewanie to będzie ono obsłużone jako tzw. przestarzałe. I mam pytanie jak zrobić aby odblokowując przerwanie nie było ono obsłużone. Podobno można wpisać 1 do danego bitu wyzerowując go, ale jeżeli jest 1 to zostanie wyzerowana a co się stanie jak by było 0 - to czy nie sprawię że zostanie obsłużone?


Jak możeci to wytłumaczcie mi to.

Sławek.

Awatar użytkownika
gawel
-
-
Posty:683
Rejestracja:24 lis 2003, o 11:19
Lokalizacja:Białystok

Re: Flagi przerwań w At90S2313

Postautor: gawel » 11 maja 2005, o 11:43

Cześć.

Mam pytanie odnośnie przewań (wszystkich) i związanych z nimi przewań.

Jeśli nadchodzi przerwanie to jest ustawiona flaga danego przetrwania i jest ona zerowana na początku obsługi danego przerwania. Jesli są ustawione bity globalnego zezwolenia i danego przerwania to zostanie ono obsłużone.

A co będzie jeżeli nap będzie zablokowane dane przewranie (nie będzie ustawiony bit zezwolenia dla konkretnego przerwania) i nadejdzie naprzykład przepełnienie licznika lub dla zewnętrznego zbocze opadające to zostanie ustawiona flaga od tego przerwania ale nie zostanie ono obsłuzone i falga nie zostanie wyzerowana. jesli teraz odblokuję dane przewanie to będzie ono obsłużone jako tzw. przestarzałe. I mam pytanie jak zrobić aby odblokowując przerwanie nie było ono obsłużone. Podobno można wpisać 1 do danego bitu wyzerowując go, ale jeżeli jest 1 to zostanie wyzerowana a co się stanie jak by było 0 - to czy nie sprawię że zostanie obsłużone?


Jak możeci to wytłumaczcie mi to.

Sławek.
Parę informacji wstępnych:
- ustawienie jakiegoś bitu oznacza wpisanie do niego 1
- wyzerowanie bitu oznacza wpis do niego 0.

Rozpatrzmy to na przykładzie (przertwania od przepełnienia timera 0, procek 2313):
- nie masz ustawionego bitu TOIE0 w TIMSK, ale jeżeli jest zaprogramowany licznik do zliczania, to on będzie zliczał i dojdzie do przepełnienia, czyli ustawienia TOV0, którego ustawienie jest sygnałem przerwania. przerwanie się nie zgłosi, bo blokuje j TOIE0.
- jeżeli zostanie ustawiony TOIE0 i był już ustawiony TOV0 to wygeneruje się przerwanie i nastąpi jego obsługa,
- jeżeli zostanie ustawiony TOIE0 i nie był już ustawiony TOV0 to nie wygeneruje się przerwanie i nastąpi jego obsługa.

Aby nie wygenerowało się przerwanie należy:
- wyzerować bit TOV0,
- ustawić bit TOIE0.

W ten sposób została włączona obsługa przerwań bez obsługi "zaległości".

Sławek5
-
-
Posty:485
Rejestracja:15 sie 2003, o 16:40
Lokalizacja:Szczecin
Kontaktowanie:

Postautor: Sławek5 » 11 maja 2005, o 13:50

Tak gawel masz rację ustawienie bitu to 1 a wyzerowanie to 0, ALE wtym przypadku wyzerowanie to wpisanie jedynki na odpowiednią pozycję (patrz kata katologowa).


Ja tylko proszę o potwierdzenie tylko czy dobrze to zrozumiałem a nie tego czy jedynka to ustawienie bitu, właśnie chodzi o to, że w tym przypadku j est wyjątek i jesli flaga ma wartośc 1, czyli jest ustawiona to wyzerować ją można wpisując właśnie 1 a nie 0!!!


Sławek.

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty:2653
Rejestracja:24 sty 2005, o 00:39
Lokalizacja:Winny gród

Postautor: pajaczek » 11 maja 2005, o 22:26

Tak gawel masz rację ustawienie bitu to 1 a wyzerowanie to 0, ALE wtym przypadku wyzerowanie to wpisanie jedynki na odpowiednią pozycję (patrz kata katologowa).


Ja tylko proszę o potwierdzenie tylko czy dobrze to zrozumiałem a nie tego czy jedynka to ustawienie bitu, właśnie chodzi o to, że w tym przypadku j est wyjątek i jesli flaga ma wartośc 1, czyli jest ustawiona to wyzerować ją można wpisując właśnie 1 a nie 0!!!
Dobrze gadasz :D :564:
I mam pytanie jak zrobić aby odblokowując przerwanie nie było ono obsłużone. Podobno można wpisać 1 do danego bitu wyzerowując go, ale jeżeli jest 1 to zostanie wyzerowana a co się stanie jak by było 0 - to czy nie sprawię że zostanie obsłużone?
Nie, jesli bedzie tam 0 (zero) to nic sie z ta flaga nie stanie (pozostanie zerem, mimo ze probujesz wpisac tam 1), przynajmniej wg. tego co pamietam z zabaw w sumulatorze AVR Studio - polecam na przyszlosc pobawienie sie tym darmowym narzedziem.

Pozdroffka

Wróć do „Elektronika - tematy dowolne”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 42 gości