Re: Przerwanie w przerwaniu 8051 i AVR

Nie wiem czy masz takie selektywne maskowanie przerwan bo malo znam 8051 Ogolnie zagniezdzanie przerwan to wyzsza szkola jazdy. W malych prockach ogolnie nalezy tego unikac. Mozesz bardzo szybko przepelnic stos i wogole latwo jakis blad zrobic ktory bedzie straszny w skutkach. Szczgolnie gdy maska jest jedna moga ci sie tak slicznie spietrzyc przerwania ze sie nie pozbierasz.

Dobra metoda jest dla testowania prawidlowosci czasowych obslugi przerwan zrobic male wstawki (kod warunkwy) do programu ktore beda ci przelaczac stan na jakims wyjsciu na ten czas nie uzywanym do innych celow. W ten sposob zobaczysz jak dlugo program ci sterczy w obsludze przerwania jak sie okaze ze dluzej siedzi w przerwaniu niz poza nim to juz jest kiepskawo.

Pozdro Grzechu

Reply to
Greg Sz
Loading thread data ...

Troszke to zawile napisane i nie do konca rozumie, ale wywolywan przerwan mozna dokonywac na rozne sposoby. Mowa tu o 51. Nawet gdy masz przerwanie na wyzszym poziomie, mozna wywolac przerwanie z nizszego poziomu stosujac odpowiednie triki. Polegac moze na tym, ze przerwanie z wyzszego poziomu na samym poczatku zmienia swoj priorytet na nizszy, a temu drugiemu nadac wyzszy priorytet. W trakcie zmiany tych priorytetow moze dojsc do sytuacji, ze bedzie potrzebne 2 przerwanie. Aby to nie zostalo zapomniane, trzeba pomyslec o jakims ukladzie czasowym. To tyle jesli chodzi o przerwania hardwarowe. W softwer. trzeba to zrobic za pomoca wykorzystania odpowiednik komorek flag. Tez napisalem zawile, ale moze uda ci sie zrozumiec moj tok rozumowania.

Reply to
Janusz Ch

A nie byłoby prościej zamiast programowo wywoływać przerwanie zmieniając bity - poprostu wykonać CALL przerwanie_X ??

Reply to
Akane

Tylko czas reakcji będzie zupełnie inny - tu masz natychmiast (us).

Do autora: możesz tak zrobić, sprawdzone.

MC

Reply to
Maciej Czapla

Chodzi o to, że pętla główna może potrzebować czasu na zbadanie znacznika który ustawiło przerwanie chyba, że będzie zajęta czekaniem tylko na jego stan.

MC

Reply to
Maciej Czapla

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.