RTV forum PL | NewsGroups PL

Brak reakcji przerwania INT1 w mikroprocesorze AT90S8515 co może być przyczyną?

Niedziała INT1 w AT90s8515

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Brak reakcji przerwania INT1 w mikroprocesorze AT90S8515 co może być przyczyną?

Goto page 1, 2  Next

Michal
Guest

Tue Nov 02, 2004 11:57 am   



Witam
Moze ktos spotkal sie z podobnym problemem, a mianowicie potrzebuje wykorzystac
w moim ukladzie przerwania INT0 i INT1, niestety ale podprogram przerwania INT1
nie zostaje wykonany po podaniu odpowiedniego sygnalu. Procek to AVR 8515
(probowalem tez na ATmega8515 i takze brak reakcji)
Zaznaczam ze wszystkie bity sa ustawione tak jak potrzeba, probowalem zmieniac
aby przerwania byly wyzwalane od innego zbocza itp. i efekt ciagle taki sam ze
INT0 dziala, a INT1 nie chce : (((

Uzywam kompilatora C - AVR Edit

Michal.

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl

peters
Guest

Tue Nov 02, 2004 12:03 pm   



Quote:
Zaznaczam ze wszystkie bity sa ustawione tak jak potrzeba

Skoro wszystko jak potrzeba, to ja nie wiem co to moze byc.
Cuda jakies chyba :)

peters

Piotrek Sz.
Guest

Tue Nov 02, 2004 2:30 pm   



Michal <mi15@poczta.onet.pl> napisał(a):

...
Quote:
Zaznaczam ze wszystkie bity sa ustawione tak jak potrzeba, probowalem zmieniac
aby przerwania byly wyzwalane od innego zbocza itp. i efekt ciagle taki sam ze
INT0 dziala, a INT1 nie chce : (((
...


A my byśmy chcieli zobaczyć na własne oczy te ustawienia :-)

Pzdr.
Piotrek Sz.

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

Guest

Tue Nov 02, 2004 3:42 pm   



Quote:
A my byśmy chcieli zobaczyć na własne oczy te ustawienia :-)


oto wycinek programu gdzie ustawiam warunki przerwania

GIMSK=1<<INT1; //
GIMSK=1<<INT0; //
MCUCR=1<<ISC10; // przerwania INT1
MCUCR=1<<ISC11; //
MCUCR=1<<ISC00; // przerwania INT0
MCUCR=1<<ISC01;
obsluga podprogramow wyglada nastepujaco

SIGNAL(SIG_INTERRUPT0)
{
.....
}
i dla INT1
SIGNAL(SIG_INTERRUPT1)
{
....
}
oba podprogramy sa prawie ze identyczne, zapalaja 4 lampy tyle ze jedno
przerwanie powoduje zapalenie lamp w jedna strone, a drugie przerwanie lampy
zapalaja sie kolejno w druga strone. Jeszcze raz zaznaczam ze INT 0 dziala i
ma sie dobrze Sad(

nasuwa mi sie mysl czy czasem kompilator nie ma bledu !!!

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl

J.F.
Guest

Tue Nov 02, 2004 6:02 pm   



On 2 Nov 2004 16:42:21 +0100, mi15@poczta.onet.pl wrote:
Quote:
A my byśmy chcieli zobaczyć na własne oczy te ustawienia Smile
oto wycinek programu gdzie ustawiam warunki przerwania

GIMSK=1<<INT1; //
GIMSK=1<<INT0; //

Na moj gust to niniejszym wlaczyles INT0, ale wylaczyles wszystkie
inne .. nie ma sie co dziwic ze nie dzialaja ..


J.

Piotrek Sz.
Guest

Tue Nov 02, 2004 7:10 pm   



Quote:
GIMSK=1<<INT1; //
GIMSK=1<<INT0; //

I dziwisz się że masz tylko INT0.Przecierz sam ładujesz maskę dla INT1,a potem
dla INT0 tym samym kasując dla INT1.W 2-giej lini brakuje "magicznago" symbolu
"OR".

Pozdrawiam
Piotrek Sz.


--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

Jacek R. Radzikowski
Guest

Tue Nov 02, 2004 7:13 pm   



Piotrek Sz. <zumek@wytnij.gazeta.pl> wrote:
Quote:
GIMSK=1<<INT1; //
GIMSK=1<<INT0; //
I dziwisz się że masz tylko INT0.Przecierz sam ładujesz maskę dla INT1,a potem
dla INT0 tym samym kasując dla INT1.W 2-giej lini brakuje "magicznago" symbolu
"OR".

I nie tylko w 2giej. We wszystkich linijkach gdzie modyfikujesz kilka razy ten sam
rejestr, do drugiej i kolejnych modyfikacji ORuj wartosc rejestru z maska bitowa.

j.


Quote:
Pozdrawiam
Piotrek Sz.


Piotrek Sz.
Guest

Tue Nov 02, 2004 7:19 pm   



...
Quote:
I nie tylko w 2giej. We wszystkich linijkach gdzie modyfikujesz kilka razy ten
sam
rejestr, do drugiej i kolejnych modyfikacji ORuj wartosc rejestru z maska bitow
...

A z tego niezbicie wynika że jesteś początkującym C-ownikiem Smile
Jako ja:-)

Pzdr.
Piotrek Sz.


--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

Guest

Wed Nov 03, 2004 4:30 am   



Quote:
..
I nie tylko w 2giej. We wszystkich linijkach gdzie modyfikujesz kilka razy
ten
sam
rejestr, do drugiej i kolejnych modyfikacji ORuj wartosc rejestru z maska
bitow

o żesz qrw.... ale ze mnie lama : )))) nie wiedzialem ze trzeba wszystkie bity
zmieniac w jednej linijce z ORami,
uogólniając:

Wpisanie GIMSK=1<<INT0; powoduje ustawienie innych biow na zero??? zaraz
zajrze do ksiazki



--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl

Jacek R. Radzikowski
Guest

Wed Nov 03, 2004 6:27 am   



mi15@poczta.onet.pl wrote:
Quote:
..
I nie tylko w 2giej. We wszystkich linijkach gdzie modyfikujesz kilka razy
ten
sam
rejestr, do drugiej i kolejnych modyfikacji ORuj wartosc rejestru z maska
bitow

o żesz qrw.... ale ze mnie lama : )))) nie wiedzialem ze trzeba wszystkie bity
zmieniac w jednej linijce z ORami,
uogólniając:

Wpisanie GIMSK=1<<INT0; powoduje ustawienie innych biow na zero??? zaraz
zajrze do ksiazki

Wpisuje do rejestru bajt z ustawionym tylko jednym bitem. Poprzednia
wartosc jest zamazywana. Albo ORuj bity przy przypisaniu:

GIMSK=(1<<...) | (1<<...) | ...

albo dodaj ORa do kolejnych:

GIMSK=1<<...; /* nadpisanie GIMSK bajtem z ustawionym tylko jednym bitem */
GIMSK|=1<<...; /* ustawienie pojedynczego bitu bez zmiany wartosci pozostalych bitow w rejestrze */
GIMSK|=1<<...;


j.

Guest

Wed Nov 03, 2004 7:58 am   



Quote:

Wpisuje do rejestru bajt z ustawionym tylko jednym bitem. Poprzednia
wartosc jest zamazywana. Albo ORuj bity przy przypisaniu:

 GIMSK=(1<<...) | (1<<...) | ...

albo dodaj ORa do kolejnych:

 GIMSK=1<<...;    /* nadpisanie GIMSK bajtem z ustawionym tylko jednym
bitem */
 GIMSK|=1<<...;   /* ustawienie pojedynczego bitu bez zmiany wartosci
pozostalych bitow w rejestrze */
 GIMSK|=1<<...;

Teraz juz kapuje : )))) Wielkie dzieki!!

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl

J.F.
Guest

Wed Nov 03, 2004 10:13 am   



On 3 Nov 2004 05:30:19 +0100, mi15@poczta.onet.pl wrote:
Quote:
o żesz qrw.... ale ze mnie lama : )))) nie wiedzialem ze trzeba wszystkie bity
zmieniac w jednej linijce z ORami,
uogólniając:

Wpisanie GIMSK=1<<INT0; powoduje ustawienie innych biow na zero??? zaraz
zajrze do ksiazki

Lama z cieba straszna :-)

A czemu mialoby dzialac inaczej ? To jest instrukcja PODSTAWIENIA.

P.S. W C sa struktury bitowe ..

J.

J.F.
Guest

Wed Nov 03, 2004 10:13 am   



On Wed, 3 Nov 2004 05:27:58 +0000 (UTC), Jacek R. Radzikowski wrote:
Quote:
GIMSK=1<<...; /* nadpisanie GIMSK bajtem z ustawionym tylko jednym bitem */
GIMSK|=1<<...; /* ustawienie pojedynczego bitu bez zmiany wartosci pozostalych bitow w rejestrze */

Na to radze uwazac - nie zawsze rejestr specjalny da sie odczytac..

J.

Jacek R. Radzikowski
Guest

Wed Nov 03, 2004 2:44 pm   



J.F. <jfox_nospam@poczta.onet.pl> wrote:
Quote:
On Wed, 3 Nov 2004 05:27:58 +0000 (UTC), Jacek R. Radzikowski wrote:
GIMSK=1<<...; /* nadpisanie GIMSK bajtem z ustawionym tylko jednym bitem */
GIMSK|=1<<...; /* ustawienie pojedynczego bitu bez zmiany wartosci pozostalych bitow w rejestrze */

Na to radze uwazac - nie zawsze rejestr specjalny da sie odczytac..

Racja. Bezpieczniej bedzie przypisac w jednym podstawieniu.
ATSD to porzadny kompilator powinien to zoptymalizowac do jednej
operacji. Moze wiec dzialac nawet jesli rejestr nie daje sie czytac,
ale na tym bym nie polegal przy pisaniu programu.

j.

> J.

Piotrek Sz.
Guest

Wed Nov 03, 2004 6:05 pm   



No to żeby tak dopełnić formalności Smile należy nadmienić że bity nie tylko się
ustawia ale także kasuje i zmienia na przeciwny.Ciekawe jak z tym zagadnieniem
kolega (autor postu) sobie z tym radzi ?

Pzdr.
Piotrek Sz.


--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

Goto page 1, 2  Next

elektroda NewsGroups Forum Index - Elektronika Polska - Brak reakcji przerwania INT1 w mikroprocesorze AT90S8515 co może być przyczyną?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map