Article View: pl.comp.objects
Article #4786Re: Interrupt
From: A. Hajderek
Date: Thu, 21 Jan 1999 11:05
Date: Thu, 21 Jan 1999 11:05
59 lines
2467 bytes
2467 bytes
Agnieszka Solarz wrote in message ...
>Chcialbym zeby funkcja obslugujaca przerwanie ustawiala jakas zmienna np
>
>void interrupt IRQ (...)
>{
>liczba = 5;
>}
>
>przy czym nie chce, zeby zmienna liczba byla obiektem globalnym, tylko
>skladnikiem klasy. Jezeli nawet funkcja IRQ jest funkcja skladowa klasy
>xxx, i zmienna liczba jest rowniez skladniekiem tej klasy, to i tak jest
>ona niewidoczna we wnetrzu tej funkcji. Jest to dla mnie troche
>niezrozumiale... Czy istnieje mozliwosc zrobienia tak, aby funkcja
>interrupt zwracala wartosc ? Czy istnieje jakas inna mozliwosc rozwiazania
>tego problemu ?
Podobnie jest z obsluga sygnalow pod Unixem. Z doswiadczenia moge
powiedziec, ze jedyna znana mi metoda jest zastosowanie publicznej
statycznej funkcji skladowej klasy oraz statycznego wskaznika do
obiektu na rzecz, ktorego ma byc wywolana funkcja obslugi przerwania.
Np.
class X
{
static X *object;
public:
static void ProcessInterrupt()
{
object->InterruptHandler();
}
static void SetActiveObject(X &obj)
{
object = &obj;
}
void InterruptHandler()
{
// kod obslugi przerwania
}
};
void interrupt IRQ (...)
{
X::ProcessInterrupt();
}
(Mozna tez ustawic adres proc. obslugi przerwania od razu na
X::ProcessInterrupt).
Oczywiscie nalezy pamietac, ze trzeba "zarejestrowac" obiekt, na rzecz
ktorego
ma byc wywolywana funkcja "InterruptHandler":
SetActiveObject(object)
Pozdrowienia,
Andrzej
Technical Details
Message-ID:
<916916883.7112.0.nnrp-02.c2d9616c@news.demon.co.uk>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.icm.edu.pl!uw.edu.pl!newsgate.cistron.nl!het.net!newshub.bart.net!colt.net!dispose.news.demon.net!demon!news.demon.co.uk!demon!melisa.lscope.co.uk!not-for-mailReferences:
<Pine.LNX.4.04.9901211010030.1492-100000@wanda.ae.krakow.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.icm.edu.pl!uw.edu.pl!newsgate.cistron.nl!het.net!newshub.bart.net!colt.net!dispose.news.demon.net!demon!news.demon.co.uk!demon!melisa.lscope.co.uk!not-for-mail From: "A. Hajderek" <andrew@logicscope.net> Newsgroups: pl.comp.objects Subject: Re: Interrupt Date: Thu, 21 Jan 1999 11:05:36 -0000 Message-ID: <916916883.7112.0.nnrp-02.c2d9616c@news.demon.co.uk> References: <Pine.LNX.4.04.9901211010030.1492-100000@wanda.ae.krakow.pl> NNTP-Posting-Host: melisa.lscope.co.uk X-NNTP-Posting-Host: melisa.lscope.co.uk:194.217.97.108 X-Trace: news.demon.co.uk 916916883 nnrp-02:7112 NO-IDENT melisa.lscope.co.uk:194.217.97.108 X-Complaints-To: abuse@demon.net X-Newsreader: Microsoft Outlook Express 4.72.2106.4 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4 Lines: 62 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit