AVRGCC przerwania...



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Paweł Kurzawa" <groups_at_nospam_kpw.qs.pl>
Subject: AVRGCC przerwania...
Date: Sat, 15 May 2004 11:04:16 +0200


Witam,
obecnie uzywam Timera0 generowania przerwania co okolo 1 sek
w ktorym to przerwaniu jest wykonywana pewna procedura.
Chce zaprzegnac Timer1 do przerwania sprawdzajacego klawiaturke.
Jak ustawic priorytety przerwan? Czy w trakcie trwania jednego przerwania
moze nastapic drugie?

--

--
Best regards
K_at_nospam_pW from Poland

kpw(at)qs.pl
http://kpw.qs.pl
UIN: 8017753
GG: 1263183
---------------- end ----------------




========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: Jurek Szczesiul <jerzy.szczesiul_at_nospam_wycin.ep.com.pl>
Subject: Re: AVRGCC przerwania...
Date: Sat, 15 May 2004 12:13:02 +0200


Sat, 15 May 2004 11:04:16 +0200, na pl.misc.elektronika, Paweł Kurzawa
napisał(a):

Witam,
obecnie uzywam Timera0 generowania przerwania co okolo 1 sek
w ktorym to przerwaniu jest wykonywana pewna procedura.
Chce zaprzegnac Timer1 do przerwania sprawdzajacego klawiaturke.
Jak ustawic priorytety przerwan? Czy w trakcie trwania jednego przerwania
moze nastapic drugie?


Avr mają sztywny priorytet przerwań ( wg kolejności wektorów ) i nic tam
nie można przestawić. Wejście do handlera przerwania od razu sprzętowo
blokuje następne i odblokowuje po powrocie RETI - więc jeśli chcesz w
handlerze umożliwić następne przerwanie trzeba jawnie użyć sei.
Avrgcc ma to przygotowane - są dwa typy makr do obsługi : SIGNAL działający
tradycyjnie ( z blokadą ) i INTERRUPT - odblokowujący w prologu następne
przerwania. Przeważnie wystarcza SIGNAL - INTERRUPT pozostaje do jakichś
zupełnie szczególnych przypadków i jego działanie musi być dokładnie
przewidziane żeby nie przysporzyć niespodzianek ;-)

IMHO używanie różnych timerów do klawiatury i zegara 1 s to w takim
wydajnym procku marnowanie zasobów ( chyba, że dla edukacji ). Do
większości tradycyjnych zastosowań wystarcza z powodzeniem jeden
uniwersalny zegar systemowy np 1 ms ( zrealizowany np. w bardzo wygodnym i
dokładnym trybie CTC ), który jest podstawą dla całego szeregu timerów
programowych, timeoutów, pollingów powolnych - jak klawiatura - peryferiów
itp.


--
Pozdrowienia
Jurek Szczesiul

========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai