Atmel AVR, nieobciazajaca petla nieskonczona
Masz problem? Zapytaj na forum elektroda.pl
From: "Vicky" <vickyBADMAIL_at_nospam_hotmail.com>
Subject: Atmel AVR, nieobciazajaca petla nieskonczona
Date: Tue, 9 Nov 2004 10:21:55 +0100
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.
From: "Krzysztof Gawryś" <profrook_TO_USUN__at_nospam_o2.pl>
Subject: Re: Atmel AVR, nieobciazajaca petla nieskonczona
Date: Tue, 9 Nov 2004 10:50:23 +0100
Użytkownik "Vicky" <vickyBADMAIL_at_nospam_hotmail.com> napisał w wiadomości
news:cmq2eg$ej2$1_at_nospam_nemesis.news.tpi.pl...
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(;;);
w C
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.
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.
From: Piotr Chmiel <piotr_at_nospam_topaz.zsel.lublin.pl>
Subject: Re: Atmel AVR, nieobciazajaca petla nieskonczona
Date: Tue, 9 Nov 2004 11:14:35 +0100
On Tue, 9 Nov 2004, Vicky wrote:
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=B3adnie
Jesli tak, to nie jest istotne, jak zrealizuje petle nieskonczona w
programie glownym.
nie jest
Jesli wywolane jest drugie przerwanie, gdy obsluga
pierwszego jeszcze sie nie skonczyla, to w jakis sposob
zachowuje sie procesor?
Ko=F1czy obs=B3ug=EA pierwszego i zajmuje si=EA 2 :)
Wykonuje na przemian po
jednym rozkazie podprogramu dla poszczegolnych
przerwan?
Absolutnie , to nie praca choperowa jak w oscyloskopie :)
From: "UdioS" <bialy_krolikWYTNIJTO_at_nospam_poczta.onet.pl>
Subject: Re: Atmel AVR, nieobciazajaca petla nieskonczona
Date: 9 Nov 2004 11:31:20 +0100
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
From: "peters" <peters_at_nospam_poczta.onet.pl>
Subject: Re: Atmel AVR, nieobciazajaca petla nieskonczona
Date: Tue, 9 Nov 2004 13:22:33 +0100
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
From: "Piotr Gałka" <piotr.galka_at_nospam_CUTTHISmicromade.pl>
Subject: Re: Atmel AVR, nieobciazajaca petla nieskonczona
Date: Tue, 9 Nov 2004 13:51:43 +0100
Użytkownik "peters" <peters_at_nospam_poczta.onet.pl> napisał w wiadomości
news:cmqd2l$r3t$1_at_nospam_nemesis.news.tpi.pl...
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.