Przerwania w 8051



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: Romuald Bialy <romekb_at_nospam_polbox.com>
Subject: Przerwania w 8051
Date: Sun, 07 May 2000 21:06:38 GMT


Witam !

2 krotkie pytanka...
Czy programowe ustawienie flagi TI (lub RI) poprzez SETB TI spowoduje
wygenerowanie przerwania UARTA ?
Jesli nie, to czy mozna z petli glownej wywolac procedure obslugi
takiego przerwania (przez ACALL) czyli czy po powrocie przez RETI nic
sie nie pokopie ?

--
Pozdrawiam.... Romuald Bialy
E'mail: romekb_at_nospam_polbox.com
WWW: http://www.polbox.com/r/romekb


Poprzedni Następny
Wiadomość
Spis treści
From: "Willaim Bonawentura" <alchemik_at_nospam_bigfoot.com>
Subject: Odp: Przerwania w 8051
Date: Mon, 8 May 2000 10:20:43 +0200


Czy programowe ustawienie flagi TI (lub RI) poprzez SETB TI spowoduje
wygenerowanie przerwania UARTA ?

Tak i dotyczy to wszystkich IRQ.




Poprzedni Następny
Wiadomość
Spis treści
From: "=?windows-1250?Q?Sylwester_=A3azar?=" <elektronik_at_nospam_alpro.com.pl>
Subject: Re: Przerwania w 8051
Date: Mon, 08 May 2000 20:19:42 GMT


Może się "pokopać".
Jeśli sztucznie wywołasz tą procedurę, to jeśli w trakcie jej obsługi
zostanie wygenerowane "prawdziwe" przerwanie - będzie kłopot.
Zazwyczaj w POP (Procedurze Obsługi Przerwania) masz gdzieś kasowanie tego
bitu.
Pół biedy jeśli na początku!
pozdrawiam,

Sylwester Łazar
electronics engineer
http://www.alpro.com.pl
elektronik_at_nospam_alpro.com.pl
__________________________________________
//ALPRO//- Projektowanie Systemów Elektronicznych
tel: +48 604 873468
tel/fax: (061) 8223-788
__________________________________________

Willaim Bonawentura napisał(a) w wiadomości:
<8f5tch$oqh$1_at_nospam_galaxy.uci.agh.edu.pl>...
Czy programowe ustawienie flagi TI (lub RI) poprzez SETB TI spowoduje
wygenerowanie przerwania UARTA ?

Tak i dotyczy to wszystkich IRQ.





Poprzedni Następny
Wiadomość
Spis treści
From: "/\\_MS_/\\" <m____s_at_nospam_viper.pl>
Subject: Re: Przerwania w 8051
Date: Tue, 9 May 2000 07:25:59 +0200



Sylwester Łazar napisał(a) w wiadomości: ...
Może się "pokopać".
Jeśli sztucznie wywołasz tą procedurę, to jeśli w trakcie jej obsługi
zostanie wygenerowane "prawdziwe" przerwanie - będzie kłopot.
Zazwyczaj w POP (Procedurze Obsługi Przerwania) masz gdzieś kasowanie tego
bitu.
Pół biedy jeśli na początku!
pozdrawiam,

Sylwester Łazar
electronics engineer
Chwila moment ! Co sie moze pokopac?
AFAIK procedura obslugi przerwania nie startuje
dopuki jest wykonywane przerwanie o priorytecie
wyzszym lub ROWNYM . Efektem bedzie tylko
powtorne wykonanie procedur przerwania
po skonczeniu tego wywolanego sztucznie.
||\_/||
|| S || m___s_at_nospam_viper.pl




--
Własna strona WWW, w 5 minut, bez znajomości HTML - http://wizytowka.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Wojtek Sujkowski" <wpsujkowski_at_nospam_qdnet.pl>
Subject: Re: Przerwania w 8051
Date: Tue, 9 May 2000 10:12:22 +0200



Sylwester Łazar napisał(a) w wiadomości: ...
Może się "pokopać".
Jeśli sztucznie wywołasz tą procedurę, to jeśli w trakcie jej obsługi
zostanie wygenerowane "prawdziwe" przerwanie - będzie kłopot.


Prawda,
ale wystarczy przed wywolaniem tej procedury zablokowac przerwanie
mogace ja wywolac

Wojtek




Poprzedni Następny
Wiadomość
Spis treści
From: "=?iso-8859-2?Q?Sylwester_=A3azar?=" <elektronik_at_nospam_alpro.com.pl>
Subject: Re: Przerwania w 8051
Date: Tue, 09 May 2000 08:44:02 GMT


ale wystarczy przed wywolaniem tej procedury zablokowac przerwanie
mogace ja wywolac

Wojtek


No oczywiście! Równie dobrze można przekaźnikiem odłączyć drut transmisyjny
od kontrolera!
Jeżeli dane lecą nieregularnie - nie wystarczy ich po prostu ignorować :-)
pozdrawiam,

Sylwester Łazar
electronics engineer
http://www.alpro.com.pl
elektronik_at_nospam_alpro.com.pl
__________________________________________
//ALPRO//- Projektowanie Systemów Elektronicznych
tel: +48 604 873468
tel/fax: (061) 8223-788
__________________________________________



Poprzedni Następny
Wiadomość
Spis treści
From: "Wojtek Sujkowski" <wpsujkowski_at_nospam_qdnet.pl>
Subject: Re: Przerwania w 8051
Date: Tue, 9 May 2000 21:08:03 +0200



Sylwester Łazar napisał(a) w wiadomości: ...
ale wystarczy przed wywolaniem tej procedury zablokowac przerwanie
mogace ja wywolac

Wojtek


No oczywiście! Równie dobrze można przekaźnikiem odłączyć drut
transmisyjny
od kontrolera!
Jeżeli dane lecą nieregularnie - nie wystarczy ich po prostu
ignorować :-)
pozdrawiam,

Nie przesadzaj, przeciez blokowaniem przerwania nie wylaczasz UARTA.
Zwroc uwage, ze Romuald potrzebuje wywolac procedure zawarta w
przerwaniu. Moze to zrobic poprzez programowe wygenerowanie przerwania
lub wywolanie wprost procedury. Niezaleznie od tego, ktora metode
wybierze to i tak na czas wykonywania tejze procedury musi zablokowac
odpowiednie przerwanie. Gdy wybierze metode sztucznego wywolania
przerwania to z zalozenia przy wykonywaniu tejze procedury ma
zablokowane przerwanie - czyz nie? Jesli wywola procedure jawnie to
musi tez jawnie zablokowac to przerwanie bo w przeciwnym wypadku w
trakcie jej wykonywanie moze nastapic rzeczywiste przerwanie, ktore
bedzie oddzialywac na te same dane!!

Pozdrowienia,
Wojtek




Poprzedni Następny
Wiadomość
Spis treści
From: "=?iso-8859-2?Q?Sylwester_=A3azar?=" <elektronik_at_nospam_alpro.com.pl>
Subject: Re: Przerwania w 8051
Date: Wed, 10 May 2000 13:13:42 GMT


Nie przesadzaj, przeciez blokowaniem przerwania nie wylaczasz UARTA.
Zwroc uwage, ze Romuald potrzebuje wywolac procedure zawarta w
przerwaniu. Moze to zrobic poprzez programowe wygenerowanie przerwania
lub wywolanie wprost procedury. Niezaleznie od tego, ktora metode

Tu chyba masz rację. Chodziło mi o to, że trzeba uważać w takich przypadkach
na czas wykonania takiej procedury.
Jeśli POP od portu szeregowego trwa dłużej niż 0,5 znaku to jeśli wywoła się
"sztucznie" taką procedurę to może być kłopot.
Ale to są tylko dywagacje.
Jeśli dobrze pamiętam to sam wywoływałem POP z programu głównego i jakoś to
działało _at_nospam_9600 bodów. Ale uważam, że nie jest to dobra metoda.
A może zrobić osobną procedurą (podobną do tej w POP) i wywoływać ją w
programie głównym, tak aby raczej nie operować na wspólnych danych?
pozdrawiam,
Sylwester Łazar

http://www.alpro.com.pl
elektronik_at_nospam_alpro.com.pl
__________________________________________
//ALPRO//- Projektowanie Systemów Elektronicznych
tel: +48 604 873468
tel/fax: (061) 8223-788
__________________________________________




Poprzedni Następny
Wiadomość
Spis treści
From: "Wojtek Sujkowski" <wpsujkowski_at_nospam_qdnet.pl>
Subject: Re: Przerwania w 8051
Date: Thu, 11 May 2000 01:49:35 +0200



Sylwester Łazar napisał(a) w wiadomości: ...
Nie przesadzaj, przeciez blokowaniem przerwania nie wylaczasz UARTA.
Zwroc uwage, ze Romuald potrzebuje wywolac procedure zawarta w
przerwaniu. Moze to zrobic poprzez programowe wygenerowanie
przerwania
lub wywolanie wprost procedury. Niezaleznie od tego, ktora metode

Tu chyba masz rację. Chodziło mi o to, że trzeba uważać w takich
przypadkach
na czas wykonania takiej procedury.
Jeśli POP od portu szeregowego trwa dłużej niż 0,5 znaku to jeśli
wywoła się
"sztucznie" taką procedurę to może być kłopot.

Całkowicie sie zgadzam. Nie znamy innych uwarunkowan w aplikacji
Romualda - np. jak jest szybkosc transmisji? jak czesto przychodza
dane?, czy sa w postaci strumienia czy pojedynczyvh ramek? itp. Byc
moze z analizy czasowej wyszlo mu, ze moze taki tricki stosowac

Ale to są tylko dywagacje.
Jeśli dobrze pamiętam to sam wywoływałem POP z programu głównego i
jakoś to
działało _at_nospam_9600 bodów. Ale uważam, że nie jest to dobra metoda.

Powiedzialbym tez ryzykowna - mozna sie "omsknac" (czasowo) na jednej
instrukcji i system sie wysypuje.

A może zrobić osobną procedurą (podobną do tej w POP) i wywoływać ją
w
programie głównym, tak aby raczej nie operować na wspólnych danych?


Jest to jakas idea tyle, ze rozrasta mu sie program i zajeta pamiec
RAM (rejestry). Moze tez probowac "pociac" te procedure tak aby
wywolywac tylko ten kawalek, ktory mu jest potrzebny - mozna
zredukowac do minimum mozliwosc kolizji.

pozdrawiam,

Takze
Wojtek




Poprzedni Następny
Wiadomość
Spis treści
From: Romuald Bialy <romekb_at_nospam_polbox.com>
Subject: Re: Przerwania w 8051
Date: Wed, 10 May 2000 22:59:50 GMT


Wojtek Sujkowski napisał(a):

[ciap]

Dzieki wszystkim ! Teraz mam pelna jasnosc... SETB TI i po krzyku.

Konkretnie chodzi tu o spowodowanie wyslania paczki danych przez uart
(kolejne dane wysylane w przerwaniu, paczka 256 Bajtow). Ale
najlatwiej jest mi to zainicjowac z petli glownej poprzez SETB TI,
reszte zrobi przerwanie uart'a.

--
Pozdrawiam.... Romuald Bialy
E'mail: romekb_at_nospam_polbox.com
WWW: http://www.polbox.com/r/romekb


Poprzedni Następny
Wiadomość
Spis treści
From: Grzegorz Redlarski <gred_at_nospam_kki.net.pl>
Subject: Re: Przerwania w 8051
Date: Tue, 09 May 2000 22:33:24 GMT


Mon, 08 May 2000 20:19:42 GMT "Sylwester Łazar"
<elektronik_at_nospam_alpro.com.pl> napisal:

Może się "pokopać".
Jeśli sztucznie wywołasz tą procedurę, to jeśli w trakcie jej obsługi
zostanie wygenerowane "prawdziwe" przerwanie - będzie kłopot.
Zazwyczaj w POP (Procedurze Obsługi Przerwania) masz gdzieś kasowanie tego
bitu.
Pół biedy jeśli na początku!

AFAIK TI jest kasowany automatycznie po przyjęciu przerwania.

Czy programowe ustawienie flagi TI (lub RI) poprzez SETB TI spowoduje
wygenerowanie przerwania UARTA ?

Tak i dotyczy to wszystkich IRQ.

Coś mi się zdaje, że nie dotyczy to przerwań zgłaszanych poziomem ale
głowy za to nie dam...

gr


Poprzedni Następny
Wiadomość
Spis treści
From: "/\\_MS_/\\" <m____s_at_nospam_viper.pl>
Subject: Re: Przerwania w 8051
Date: Wed, 10 May 2000 07:27:02 +0200



Czy programowe ustawienie flagi TI (lub RI) poprzez SETB TI spowoduje
wygenerowanie przerwania UARTA ?

Tak i dotyczy to wszystkich IRQ.

Coś mi się zdaje, że nie dotyczy to przerwań zgłaszanych poziomem ale
głowy za to nie dam...

gr


Ustawienie flagi przerwania jest juz efektem
wykrycia przerwania , niezaleznie od
tego jak jest aktywowane
||\_/||
|| S || m____s_at_nospam_viper.pl




--
Przyznajemy się do niskich cen - http://rubikon.pl

Poprzedni Następny
Wiadomość
Spis treści
From: Grzegorz Redlarski <gred_at_nospam_kki.net.pl>
Subject: Re: Przerwania w 8051
Date: Thu, 11 May 2000 22:04:45 GMT


Wed, 10 May 2000 07:27:02 +0200 "/\\ MS_\\" <m____s_at_nospam_viper.pl>
napisal(a):

Czy programowe ustawienie flagi TI (lub RI) poprzez SETB TI spowoduje
wygenerowanie przerwania UARTA ?

Tak i dotyczy to wszystkich IRQ.

Coś mi się zdaje, że nie dotyczy to przerwań zgłaszanych poziomem ale
głowy za to nie dam...

Ustawienie flagi przerwania jest juz efektem
wykrycia przerwania , niezaleznie od
tego jak jest aktywowane

Ustawienie tej flagi dla przerwan zewnetrznych jest "efektem wykrycia
przerwania" przy wyzwalaniu zboczem. Przy wyzwalaniu poziomem
odzwierciedla biezacy stan linii wejsciowej (w zwyklej '51 jest on
negacja wejsc INTx).

Przerwanie zewnetrzne wyzwalane poziomem, jesli nie zdazy byc
wywolane, a linia wroci na poziom nieaktywny, nie bedzie juz wywolane.
Podobnie wpisanie "1" do znacznika przerwania przy nieaktywnym wejsciu
bedzie niemozliwe gdyz bedzie natychmiast skasowane ze wzgledu na stan
wejscia INTx i nie dojdzie do uruchomienia obslugi przerwania.

gr


Poprzedni Następny
Wiadomość
Spis treści
From: "Willaim Bonawentura" <alchemik_at_nospam_bigfoot.com>
Subject: Odp: Przerwania w 8051
Date: Wed, 10 May 2000 15:09:50 +0200


AFAIK TI jest kasowany automatycznie po przyjęciu przerwania.

TI oraz RI jako jedyne należy akurat kasować samodzielnie ...