Opuszczanie handlera w AVR



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Piotr Wyderski" <piotr.wyderski_at_nospam_wp.pl>
Subject: Opuszczanie handlera w AVR
Date: Sun, 13 Jun 2004 12:40:36 +0200


Witam,

czy na AVR 8515 mozna w bezpieczny sposob opuscic
procedure obslugi przerwania za pomoca ret albo rjmp
(oczywiscie po odpowiednim poprawieniu ramki stosu),
czy tez ma on wbudowane mechanizmy koniecznie
wymagajace reti?

Podrawiam
Piotr Wyderski




========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.ipartners.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: Marcin Stanisz <mstanisz_at_nospam_poczta.bzdury.onet.pl>
Subject: Re: Opuszczanie handlera w AVR
Date: 13 Jun 2004 11:52:15 GMT


W artykule <cahb2k$i65$1_at_nospam_news.dialog.net.pl> Piotr Wyderski napisal(a):
czy na AVR 8515 mozna w bezpieczny sposob opuscic
procedure obslugi przerwania za pomoca ret albo rjmp
(oczywiscie po odpowiednim poprawieniu ramki stosu),
czy tez ma on wbudowane mechanizmy koniecznie
wymagajace reti?

Oprócz zdjęcia adresu powrotu ze stosu włącza przerwania (ustawia flagę
I w SREG). I tyle.

Marcin Stanisz
--

"A lie will go round the world before the truth has got its boots on"
Terry Pratchett, "Truth"

========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!www.wizzard.one.pl!new

Poprzedni Następny
Wiadomość
Spis treści
From: "T.M.F." <tfrancuz_at_nospam_nospam.mp.pl>
Subject: Re: Opuszczanie handlera w AVR
Date: Sun, 13 Jun 2004 13:54:57 +0200


czy na AVR 8515 mozna w bezpieczny sposob opuscic
procedure obslugi przerwania za pomoca ret albo rjmp
(oczywiscie po odpowiednim poprawieniu ramki stosu),
czy tez ma on wbudowane mechanizmy koniecznie
wymagajace reti?

RETI rozni sie od RET wylacznie tym, ze ponownie wlacza przerwania.
Sekwencja RETI od SEI; RETI; rozni sie tym, ze po reti wykonany zostanie
przynajmniej jeden rozkaz przed przyjeciem kolejnego przerwania,
natomiast w tym drugim przypadku nie - tym drugim rozkazem bedzie ret.
Wykorzystanie rjmp sensu nie ma bo przeciez nie wiesz w ktorym miejscu
wystapilo przerwanie, musialbys ten adres pobierac ze stosu.

--
Inteligentny dom - http://idom.wizzard.one.pl
Teraz takze forum dyskusyjne
Zobacz, wyslij uwagi, dolacz sie do projektu.

========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!news.internetia.pl!newsfeed.tpinternet.pl!news.dialog.net.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Piotr Wyderski" <piotr.wyderski_at_nospam_wp.pl>
Subject: Re: Opuszczanie handlera w AVR
Date: Sun, 13 Jun 2004 15:22:07 +0200



T.M.F. wrote:

RETI rozni sie od RET wylacznie tym, ze ponownie wlacza przerwania.

Wiec moge bezpiecznie zrobic sztuczke polegajaca na umieszczeniu
procedury obslugi przerwania wewnatrz innej procedury; dzieki wam
obu za wyjasnienie watpliwosci.

Wykorzystanie rjmp sensu nie ma bo przeciez nie wiesz w ktorym miejscu
wystapilo przerwanie

Rzecz w tym, ze prawie dokladnie wiem, bo to przerwanie
z komparatora, uruchamiane w scisle okreslonym miejscu.

musialbys ten adres pobierac ze stosu.

Pobieram, ale nie jako adres powrotny, lecz do uscislenia
co to znaczy "prawie" w powyzszym akapicie i skorygowania
zawartsci licznika. :-)

Pozdrawiam
Piotr Wyderski



========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!news.onet.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: J.F. <jfox_nospam_at_nospam_poczta.onet.pl>
Subject: Re: Opuszczanie handlera w AVR
Date: Mon, 14 Jun 2004 17:56:34 +0200


On Sun, 13 Jun 2004 15:22:07 +0200, Piotr Wyderski wrote:
RETI rozni sie od RET wylacznie tym, ze ponownie wlacza przerwania.

Wiec moge bezpiecznie zrobic sztuczke polegajaca na umieszczeniu
procedury obslugi przerwania wewnatrz innej procedury; dzieki wam
obu za wyjasnienie watpliwosci.

Nie bardzo rozumiem co chcesz osiagnac .. ale z przerwaniami uwazaj.

Wykorzystanie rjmp sensu nie ma bo przeciez nie wiesz w ktorym miejscu
wystapilo przerwanie

Rzecz w tym, ze prawie dokladnie wiem, bo to przerwanie
z komparatora, uruchamiane w scisle okreslonym miejscu.

To po co przerwanie ? :-)

J.


========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.dialog.net.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Piotr Wyderski" <piotr.wyderski_at_nospam_wp.pl>
Subject: Re: Opuszczanie handlera w AVR
Date: Mon, 14 Jun 2004 17:59:06 +0200



J.F. wrote:

Nie bardzo rozumiem co chcesz osiagnac ..

Konwerter ADC dual slope z mozliwie dokladnym licznikiem.
Konkretnie to w chwili obecnej wyglada tak:

; analog to digital conversion

adc_convert:

clr ZL
clr ZH

; enable comparator interrupt source

sbi ACSR,ACIE

; enter capacitor charging mode

cbi DDRB,PB2
cbi PORTD,PD6

adc_loop:

; analog comparator interrupt will break the loop

adiw ZL,0x02
rjmp adc_loop

; analog comparator interrupt handler

irq_comparator:

; disable comparator interrupt source

cbi ACSR,ACIE
sei

; enter capacitor discharging mode

sbi PORTD,PD6
sbi DDRB,PB2

; get the return address

pop tmp
pop tmp

; check whether the value should be adjusted

cpi tmp,low(adc_loop + 0x01)
brne adc_done

; adjust the counter value

sbiw ZL,0x01

adc_done:

ret

To po co przerwanie ? :-)

Wlasnie do przerwania... wiecznej petli. :-)

Pozdrawiam
Piotr Wyderski



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