Atmel AVR, nieobciazajaca petla nieskonczona

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.

Reply to
Vicky
Loading thread data ...
Reply to
invalid unparseable

Dokładnie

nie jest

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

Absolutnie , to nie praca choperowa jak w oscyloskopie :)

Reply to
Piotr Chmiel

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

Reply to
UdioS
Reply to
invalid unparseable

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.