AVR i przerwania
Masz problem? Zapytaj na forum elektroda.pl
From: "EM" <edim123_at_nospam_poczta.onet.pl>
Subject: AVR i przerwania
Date: Thu, 20 Feb 2003 09:39:45 +0100
Witam
Mam pytanie odnośnie przerwań w prockach AVR Atmela.
Otóż piszę program na AT90S2313 z użyciem AVRStudio 3.56.
Mam problem z przerwaniami.
Używam (na razie) przerwania zewnętrznego INT0 oraz od przepełnienia
Timera0.
Przerwanie INT0 ma wyższy priorytet od TIM0_OVF.
Byłem przygotowany na to, że w czasie obsługi przerwania TIM0_OVF,
wystąpienie przerwania INT0 spowoduje natychmiastową jego obsługę. Tymczasem
przerwanie TIM0_OVF jest wykonywane do końca i dopiero potem następuje
obsługa INT0.
Najpierw zastanawiałem się, czy to nie jest przypadkiem błąd symulatora.
Jednak w pdfie do procka nie znalazłem informacji na temat wyskoczenia z
jednego przerwania do drugiego (może źle patrzyłem).
Proszę o zdanie doświadczonych użytkowników AVRów.
Pozdrawiam
EM
========
Path: news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "Tuptuś" <tuptus26_at_nospam_wp.pl>
Subject: Re: AVR i przerwania
Date: Thu, 20 Feb 2003 09:50:48 +0100
Zobacz co robi w rejestrach funkcja powrotu z przerwania i trzeba tk ustaiwć
rejestry.
Owszem ma wyższy priorytet podczas, gdy rywalizują o wywołanie przerwania.
Tuptuś
Użytkownik "EM" <edim123_at_nospam_poczta.onet.pl> napisał w wiadomości
news:b3243g$si0$1_at_nospam_news.onet.pl...
Witam
Mam pytanie odnośnie przerwań w prockach AVR Atmela.
Otóż piszę program na AT90S2313 z użyciem AVRStudio 3.56.
Mam problem z przerwaniami.
Używam (na razie) przerwania zewnętrznego INT0 oraz od przepełnienia
Timera0.
Przerwanie INT0 ma wyższy priorytet od TIM0_OVF.
Byłem przygotowany na to, że w czasie obsługi przerwania TIM0_OVF,
wystąpienie przerwania INT0 spowoduje natychmiastową jego obsługę.
Tymczasem
przerwanie TIM0_OVF jest wykonywane do końca i dopiero potem następuje
obsługa INT0.
Najpierw zastanawiałem się, czy to nie jest przypadkiem błąd symulatora.
Jednak w pdfie do procka nie znalazłem informacji na temat wyskoczenia z
jednego przerwania do drugiego (może źle patrzyłem).
Proszę o zdanie doświadczonych użytkowników AVRów.
Pozdrawiam
EM
========
Path: news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.onet.pl!newsfeed.gazeta.pl!news.atcom.net.pl!not-for-mai
From: Artur Lipowski <lal_at_nospam_pro.onet.pl>
Subject: Re: AVR i przerwania
Date: Thu, 20 Feb 2003 09:28:03 +0000 (UTC)
In article <b3243g$si0$1_at_nospam_news.onet.pl>, EM wrote:
...
Przerwanie INT0 ma wyższy priorytet od TIM0_OVF.
Byłem przygotowany na to, że w czasie obsługi przerwania TIM0_OVF,
wystąpienie przerwania INT0 spowoduje natychmiastową jego obsługę. Tymczasem
przerwanie TIM0_OVF jest wykonywane do końca i dopiero potem następuje
obsługa INT0.
...
Pewnie to jest oczywiste, ale dla porządku zapytam tylko, jak obsługujesz
przerwanie timera:
- jeżeli w asemblerze to "ręcznie" włączasz przerwania w procedurze obsługi
timera?
- jeżeli w C to używasz makra INTERRUPT czy SIGNAL (czyli pozwalasz na inne
przerwania lub nie)?
Pozdrawiam,
--
Artur Lipowski
--
http://www.komrel.net - Twoj Serwer Sukcesu!
========
Path: news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!not-for-mai
From: "Jerzy Szczesiul" <jerzy.szczesiul_at_nospam_ep.com.pl>
Subject: Re: AVR i przerwania
Date: Thu, 20 Feb 2003 10:34:18 +0100
Czesc
Użytkownik EM <edim123_at_nospam_poczta.onet.pl> w wiadomości do grup dyskusyjnych
napisał:b3243g$si0$1_at_nospam_news.onet.pl...
Witam
Mam pytanie odnośnie przerwań w prockach AVR Atmela.
<pdf>
When an interrupt occurs, the Global Interrupt Enable I-bit is cleared and
all interrupts
are disabled. The user software can write logic one to the I-bit to enable
nested inter-rupts.
All enabled interrupts can then interrupt the current interrupt routine. The
I-bit is
automatically set when a Return from Interrupt instruction - RETI - is
executed.
</pdf>
--
Pozdrowienia
Jurek Szczesiul
========
Path: news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!newsfeed.gazeta.pl!news.astercity.net!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: ktom <ktom2_at_nospam_poczta.fm>
Subject: Re: AVR i przerwania
Date: Thu, 20 Feb 2003 10:47:00 +0100
Dnia 03-02-20 09:39, Użytkownik EM napisał:
Przerwanie INT0 ma wyższy priorytet od TIM0_OVF.
Byłem przygotowany na to, że w czasie obsługi przerwania TIM0_OVF,
wystąpienie przerwania INT0 spowoduje natychmiastową jego obsługę. Tymczasem
przerwanie TIM0_OVF jest wykonywane do końca i dopiero potem następuje
obsługa INT0.
Aby inne przerwanie (INT0) moglo byc obsluzone podczas wykonywania
przerwania (TIM0_OVF) nalezy wstawic rozkaz SEI (oblokuj przerwania).
Rozkaz wstawiamy w procedurze przerwania, ktore moze byc przerywane,
czyli w TIM0_OVF.
Miejsce tego rozkazu powino byc przemyslane.
Moze byc wstawione po reinicjowaniu licznika T0 i po wykonaniu sekcji
krytycznych w tym przerwaniu.
Czas obslugi przerwania INT0 nie moze przekraczac czasu, ktory zostal do
zgloszenia nastepnego TIM0_OVF, bo nie uzyskasz stalego interwalu
czasowego TIM0
Tomek
========
Path: news-archive.icm.edu.pl!news.rmf.pl!poznan.rmf.pl!news.man.poznan.pl!news.nask.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "EM" <edim123_at_nospam_poczta.onet.pl>
Subject: Odp: AVR i przerwania
Date: Thu, 20 Feb 2003 10:59:32 +0100
Dziękuję wszystkim za odpowiedzi.
Wynika z tego, że jednak niedokładnie przeczytałem pdfa.
Teraz już wszystko jasne.
Pozdrawiam
EM
========
Path: news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news-stoc.telia.net!news-stoa.telia.net!telia.net!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai