RTV forum PL | NewsGroups PL

Zachowanie procesora Atmel AVR podczas obsługi wielu przerwań w pętli nieskończonej

Atmel AVR, nieobciazajaca petla nieskonczona

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Zachowanie procesora Atmel AVR podczas obsługi wielu przerwań w pętli nieskończonej

Vicky
Guest

Tue Nov 09, 2004 9:21 am   



Witam,

Mam procesor Atmel AVR. Aplikacja, ktora tworze
polega na tym, ze do procesora podawane sa dwa sygnaly,
ktore generuja przerwania wykonujace jakies podprogramy.
Sam procesor nie ma nic do roboty i w glownym
programie powinna byc petla nieskonczona.
I tu pytanie o dzialanie procesora: jesli przyjdzie przerwanie,
to czy program glowny jest przerywany i wykonywany
jest w calosci program obslugi przerwania? Jesli tak,
to nie jest istotne, jak zrealizuje petle nieskonczona w
programie glownym.
Jesli wywolane jest drugie przerwanie, gdy obsluga
pierwszego jeszcze sie nie skonczyla, to w jakis sposob
zachowuje sie procesor? Wykonuje na przemian po
jednym rozkazie podprogramu dla poszczegolnych
przerwan?

Z gory dziekuje za odpowiedzi.
Vicky.

Krzysztof Gawryś
Guest

Tue Nov 09, 2004 9:50 am   



Użytkownik "Vicky" <vickyBADMAIL@hotmail.com> napisał w wiadomości
news:cmq2eg$ej2$1@nemesis.news.tpi.pl...
Quote:
Witam,

Mam procesor Atmel AVR. Aplikacja, ktora tworze
polega na tym, ze do procesora podawane sa dwa sygnaly,
ktore generuja przerwania wykonujace jakies podprogramy.
Sam procesor nie ma nic do roboty i w glownym
programie powinna byc petla nieskonczona.

np.

for(;Wink;

w C

Quote:
I tu pytanie o dzialanie procesora: jesli przyjdzie przerwanie,
to czy program glowny jest przerywany i wykonywany
jest w calosci program obslugi przerwania? Jesli tak,
to nie jest istotne, jak zrealizuje petle nieskonczona w
programie glownym.

Dokładnie tak, przerwania mają zawsze wyższy piorytet niż program główny.

Quote:
Jesli wywolane jest drugie przerwanie, gdy obsluga
pierwszego jeszcze sie nie skonczyla, to w jakis sposob
zachowuje sie procesor? Wykonuje na przemian po
jednym rozkazie podprogramu dla poszczegolnych
przerwan?

Taka sytuacja nie może mieć miejsca, system obsługi przerwań w AVR, wyłącza
bit "I" w rejestrze SREG procesora i dopiero albo ustawienie tego bitu z
ciała programu, albo powrót z funkcji obsługi przerwania poprzez instrukcję
RETI, która ustawia bit "I" w SREG, uaktywnia system przerwań.

Natomiast w przypadku równoległego zaistnienia zgłoszenia dwóch przerwań
(oba w tym samym cyklu zegara), decyzja o tym które przerwanie zostaje
wywołane jako pierwsze, ustalana jest na podstawie piorytetu przerwania.
Wyższy piorytet zawsze ma pierwszeństwo w powyższej sytuacji.

K.

Piotr Chmiel
Guest

Tue Nov 09, 2004 10:14 am   



On Tue, 9 Nov 2004, Vicky wrote:

Quote:
Mam procesor Atmel AVR. Aplikacja, ktora tworze
polega na tym, ze do procesora podawane sa dwa sygnaly,
ktore generuja przerwania wykonujace jakies podprogramy.
Sam procesor nie ma nic do roboty i w glownym
programie powinna byc petla nieskonczona.

I tu pytanie o dzialanie procesora: jesli przyjdzie przerwanie,
to czy program glowny jest przerywany i wykonywany
jest w calosci program obslugi przerwania?

Dokładnie

Quote:
Jesli tak, to nie jest istotne, jak zrealizuje petle nieskonczona w
programie glownym.

nie jest

Quote:
Jesli wywolane jest drugie przerwanie, gdy obsluga
pierwszego jeszcze sie nie skonczyla, to w jakis sposob
zachowuje sie procesor?

Kończy obsługę pierwszego i zajmuje się 2 :)

Quote:
Wykonuje na przemian po
jednym rozkazie podprogramu dla poszczegolnych
przerwan?

Absolutnie , to nie praca choperowa jak w oscyloskopie Smile

UdioS
Guest

Tue Nov 09, 2004 10:31 am   



Quote:
Witam,

Mam procesor Atmel AVR. Aplikacja, ktora tworze
polega na tym, ze do procesora podawane sa dwa sygnaly,
ktore generuja przerwania wykonujace jakies podprogramy.
Sam procesor nie ma nic do roboty i w glownym
programie powinna byc petla nieskonczona.
I tu pytanie o dzialanie procesora: jesli przyjdzie przerwanie,
to czy program glowny jest przerywany i wykonywany
jest w calosci program obslugi przerwania? Jesli tak,
to nie jest istotne, jak zrealizuje petle nieskonczona w
programie glownym.
Jesli wywolane jest drugie przerwanie, gdy obsluga
pierwszego jeszcze sie nie skonczyla, to w jakis sposob
zachowuje sie procesor? Wykonuje na przemian po
jednym rozkazie podprogramu dla poszczegolnych
przerwan?

podczas pracy programu gdy wystąpi przerwanie mikroprocesor zawiesza
wykonywane dotychczas czynnosci i przechodzi do obsługi przerwania.
Musisz pamietać, że podczas obsługi przerwania należy zapamiętać na stosie
zmienne które mogły by zostać zmienione w przerwaniu. W tym przypadku to nie
dotyczy, bo główna pętla nic nie wykonuje. Ja na ogół w takiej pętli
umieszczam kilka rozkazów 'nop' czyli nie rób nic.
kontynułując: jeżeli przyjdzie drugie przerwanie w momencie gdy mikroprocesor
wykonuje juz jakieś, to zostanie ono dopiero wykonane gdy zakończy się obsłóga
pierwszego.
Chyba, że załączycz (na początku przerwania) ogólne zezwolenie na przerwania.(
podczas rozpoczęcia obsługi przerwania mikroprocesor wyłancza obsługę przerwań
i załancza ją spowrotem gdy kończy obsługe przerwania) wówczas zostanie
przerwana ponownie przaca mikroprocesaora i zacznie on obsługiwać drógie
przerwanie. gdy skonczy je powróci do miejsca przerwania pierwszego
przerwania, skończy je i wróci w końcu do pętli głównej

Niewiem troszkę to chyba zamotałem, ale mam nadzieje że coś Ci to rozjaśni
sprawę

Pozdrawiam

UdioS

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl

peters
Guest

Tue Nov 09, 2004 12:22 pm   



Quote:
podczas rozpoczęcia obsługi przerwania mikroprocesor wyłancza obsługę
przerwań
i załancza ją spowrotem

Bardzo Cie prosze: wyłącza i załącza

nie moglem sie powstrzymac, peters

Piotr Gałka
Guest

Tue Nov 09, 2004 12:51 pm   



Użytkownik "peters" <peters@poczta.onet.pl> napisał w wiadomości
news:cmqd2l$r3t$1@nemesis.news.tpi.pl...
Quote:
podczas rozpoczęcia obsługi przerwania mikroprocesor wyłancza
obsługę
przerwań
i załancza ją spowrotem

Bardzo Cie prosze: wyłącza i załącza

nie moglem sie powstrzymac, peters


"siłom i godnościom osobistom" - wężykiem Jasiu.
Też się nie mogłem.
P.G.

elektroda NewsGroups Forum Index - Elektronika Polska - Zachowanie procesora Atmel AVR podczas obsługi wielu przerwań w pętli nieskończonej

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map