Przerwania zewnetrzne '51...



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Bartek" <bablos_at_nospam_poczta.onet.pl>
Subject: Przerwania zewnetrzne '51...
Date: Fri, 20 Dec 2002 23:32:13 +0100


Witam!

Mam problem z aktywowaniem przerwan INT0 i INT1
w MCS51.
Mianowicie chodzo o to, ze w momencie gdy w
programie (asambler)
aktywuje te 2 przerwania program zachowuje sie
tak jakby otrzymal
zgloszenie przerwania INT0...

System przerwan aktywuje tak:
MOV IE, #10000101b

Przy symulacji po przejsciu przez w/w komorke
symulator skacze pod adres 03h (INT0).

Dlaczego tak sie dzieje? Czy to normalne?
(wydaje mi sie, ze nie bardzo)

Dodam, ze na 3 porcie caly czas sa same "1"
(nie ma przerwania).

Bartek



Poprzedni Następny
Wiadomość
Spis treści
From: "Bartosz Sarama" <quasimod_at_nospam_poczta.usun.onet.pl>
Subject: Re: Przerwania zewnetrzne '51...
Date: Fri, 20 Dec 2002 23:54:46 +0100


Witam!

Mam problem z aktywowaniem przerwan INT0 i INT1
w MCS51.
Mianowicie chodzo o to, ze w momencie gdy w
programie (asambler)
aktywuje te 2 przerwania program zachowuje sie
tak jakby otrzymal
zgloszenie przerwania INT0...

Nie ustawiasz np. typu przerwania - masz niski poziom a nie zbocze,
ale to tak przy okazji, żebyś pamiętał, że istnieje :-)

Dodam, ze na 3 porcie caly czas sa same "1"
(nie ma przerwania).

No to nie to, co napisałem. Powinno działać. Jakiego symulatora
używasz?


Pozdrawiam
Bartosz Sarama


Poprzedni Następny
Wiadomość
Spis treści
From: "Bartek" <bablos_at_nospam_poczta.onet.pl>
Subject: Re: Przerwania zewnetrzne '51...
Date: Sat, 21 Dec 2002 00:09:50 +0100


Dodam, ze na 3 porcie caly czas sa same "1"
(nie ma przerwania).

No to nie to, co napisałem. Powinno działać.
Jakiego symulatora
używasz?

Siakis stary - TURBO 51 ver1.0
BTW: Moze ktos poda nazwe "czegos lepszego"?

Pozbylem sie opisanego problemu tak, ze
najpierw wlaczam
w IE przerwania INT0 i INT1, a dopiero potem
robie
SETB 0AFh

(AFh - adres EA).

Ale i tak chcialbym sie dowiedziec dlaczego
symulator zachowal sie tak dziwnie
gdy uzylem MOV IE, #10000101b ?
Moze to faktycznie wina symulatora...

Bartek




Poprzedni Następny
Wiadomość
Spis treści
From: "Bartosz Sarama" <quasimod_at_nospam_poczta.usun.onet.pl>
Subject: Re: Przerwania zewnetrzne '51...
Date: Sat, 21 Dec 2002 16:24:13 +0100


Użytkownik "Bartek" <bablos_at_nospam_poczta.onet.pl> napisał w wiadomości
news:au07uu$q9r$1_at_nospam_news.tpi.pl...

Siakis stary - TURBO 51 ver1.0
BTW: Moze ktos poda nazwe "czegos lepszego"?

Ze starych i prostych jest AVSIM 8051. Dziala wysmienicie i do
sprawdzenia prostych funkcji jest wystarczajacy.



Pozbylem sie opisanego problemu tak, ze
najpierw wlaczam
w IE przerwania INT0 i INT1, a dopiero potem
robie
SETB 0AFh

(AFh - adres EA).

Ale i tak chcialbym sie dowiedziec dlaczego
symulator zachowal sie tak dziwnie
gdy uzylem MOV IE, #10000101b ?
Moze to faktycznie wina symulatora...


Je







Poprzedni Następny
Wiadomość
Spis treści
From: "Bartosz Sarama" <quasimod_at_nospam_poczta.usun.onet.pl>
Subject: Re: Przerwania zewnetrzne '51...
Date: Sat, 21 Dec 2002 16:27:43 +0100


Użytkownik "Bartek" <bablos_at_nospam_poczta.onet.pl> napisał w wiadomości
news:au07uu$q9r$1_at_nospam_news.tpi.pl...

Pozbylem sie opisanego problemu tak, ze
najpierw wlaczam
w IE przerwania INT0 i INT1, a dopiero potem
robie
SETB 0AFh

(AFh - adres EA).

Ale i tak chcialbym sie dowiedziec dlaczego
symulator zachowal sie tak dziwnie
gdy uzylem MOV IE, #10000101b ?
Moze to faktycznie wina symulatora...

Przeklęty IE :-/

Jeśli poszło w ten sposób to dość na pewno wina leży po stronie
symulatora.

Pozdrawiam
Bartosz Sarama



Poprzedni Następny
Wiadomość
Spis treści
From: "Jerzy Szczesiul" <jerzy.szczesiul_at_nospam_ep.com.pl>
Subject: Re: Przerwania zewnetrzne '51...
Date: Sat, 21 Dec 2002 16:46:39 +0100


Czesc

Przeklęty IE :-/


Nawet z okazji '51
MS Internet Explorer obrywa ;-)))

--
Pozdrowienia
Jurek Szczesiul


Poprzedni Następny
Wiadomość
Spis treści
From: jfox_at_nospam_poczta.onet.pl (J.F.)
Subject: Re: Przerwania zewnetrzne '51...
Date: Sun, 22 Dec 2002 12:31:02 GMT


On Sat, 21 Dec 2002 16:46:39 +0100, Jerzy Szczesiul wrote:
Czesc
Przeklęty IE :-/

Nawet z okazji '51
MS Internet Explorer obrywa ;-)))

Bo zasluzyl za caloksztalt :-)

J.



Poprzedni Następny
Wiadomość
Spis treści
From: "edek" <k_at_nospam_ii.pl>
Subject: Re: Przerwania zewnetrzne '51...
Date: Sun, 22 Dec 2002 02:56:49 +0100



Użytkownik "Bartek" <bablos_at_nospam_poczta.onet.pl> napisał w wiadomości
news:au07uu$q9r$1_at_nospam_news.tpi.pl...
Dodam, ze na 3 porcie caly czas sa same "1"
(nie ma przerwania).

(Ciach)

Ale i tak chcialbym sie dowiedziec dlaczego
symulator zachowal sie tak dziwnie
gdy uzylem MOV IE, #10000101b ?
Moze to faktycznie wina symulatora...

Niekoniecznie.
Byc moze tak sie zachowuje procek jak naraz (przez mov)
ustawiasz wszystkie bity w rejestrze IE.

Popatrz tu: http://kordirko.homeip.net/elektro/mcs51manual.pdf
rozdzial 2 "Programmers guide" sekcja "Interrupts"

Intel zaleca takie kroki jesli chcesz uzyc przerwan:
1. Ustaw bit EA w IE
2 Ustaw bity IE0 albo IE1
3 ...
wiec na 99,9% ten sposob musi ci zadzialac - INTEL to gwarantuje
(te 0,01% niepewnosci to na wypadek jakby sie INTEL pomylil
w dokumentacji :-)

Jak sie zaczniesz wczytywac w szczegoly to dojdziesz do tego
ze procek "bada" stany pinow przerwan w ktoryms z 12-tu
cyklow zegarowych danego cyklu maszynowego,
natomiast na podstawie tych danych decyzja o "przerwaniu"
podejmowana jest dopiero w nastepnym cyklu maszynowym.
Czyli juz w nastepnym cyklu maszynowym po tym w ktorym
ustawiasz caly IE procek "podejmuje decyzje" o przerwaniu
na podstawie stanow portow przerwan
"odczytanych" w poprzednim cyklu.
Ale w poprzednim cyklu przerwania byly jeszcze
zablokowane - i w tym przypadku nie wiadomo dokladnie
skad on bierze te wartosci "portow przerwan",
czy faktycznie z pinow procka czy moze "z powietrza"
(trzeba by znac dokladny schemat jak oni te przerzutniki
tam w srodku polutowali :-)

edek




Poprzedni Następny
Wiadomość
Spis treści
From: "edek" <k_at_nospam_ii.pl>
Subject: Re: Przerwania zewnetrzne '51...
Date: Sat, 21 Dec 2002 00:14:59 +0100



Użytkownik "Bartek" <bablos_at_nospam_poczta.onet.pl> napisał w wiadomości
news:au05ns$ip1$1_at_nospam_news.tpi.pl...
Witam!

Mam problem z aktywowaniem przerwan INT0 i INT1
w MCS51.
Mianowicie chodzo o to, ze w momencie gdy w
programie (asambler)
aktywuje te 2 przerwania program zachowuje sie
tak jakby otrzymal
zgloszenie przerwania INT0...

System przerwan aktywuje tak:
MOV IE, #10000101b

Przy symulacji po przejsciu przez w/w komorke
symulator skacze pod adres 03h (INT0).



Sprobuj wlaczyc w rejestrze TCON bity IT0 i IT1
(1=trybwyzwalania zboczem, 0 - wyzwalanie poziomem niskim)
wtedy niezaleznie od tego co masz na wejsciu
/INT0 /INT1 przerwanie uzyskasz tylko
w momencie "przejscia" sygnalu z 1 do 0.

Pozatym ustawiaj "pojedynczo" bity, nie na raz w IE
Najpierw skonfiguruj inne bity, bit Enabe Interrupts
ustawiaj na samym koncu.

edek






Poprzedni Następny
Wiadomość
Spis treści
From: Maciej Czapla <mc_at_nospam_sensor.com.pl>
Subject: Re: Przerwania zewnetrzne '51...
Date: Sat, 21 Dec 2002 00:16:32 +0100


System przerwan aktywuje tak:
MOV IE, #10000101b

Przy symulacji po przejsciu przez w/w komorke
symulator skacze pod adres 03h (INT0).

Dlaczego tak sie dzieje? Czy to normalne?
(wydaje mi sie, ze nie bardzo)

Może z jakiegoś powodu masz w chwili aktywacji przrwań ustawioną flagę IEx (w
TCON) albo symulator ma bugi?

MC
--
Czy to sens ma, kląć, że ten Świat z kiepskiego zrobiony surowca,
Bo dobry Bóg już zrobił co mógł, teraz trzeba zawołać fachowca.

Poprzedni Następny
Wiadomość
Spis treści
From: "Bartek" <bablos_at_nospam_poczta.onet.pl>
Subject: Re: Przerwania zewnetrzne '51...
Date: Sun, 22 Dec 2002 10:30:05 +0100


OK! Wielkie dzieki wszystkim!
Juz dziala .... wiecie mam takie problemy
poniewaz dopiero zaczynam z uP.

Bartek