RTV forum PL | NewsGroups PL

Problemy z zamrożeniem i reakcjami klawiszy w 89s52 - co może być nie tak?

[51] 89s52 jak zamarza to przemarza

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Problemy z zamrożeniem i reakcjami klawiszy w 89s52 - co może być nie tak?

Janko Muzykant
Guest

Sun Oct 15, 2006 6:56 pm   



Int0 i int1 zwieram do masy. Wywołuję tym przerwanie, które odwraca bit,
który steruje ledą, żeby było widać co i jak.
1. Tryb bez oszczędności - wszystko jest ok i zgodnie z przewidywaniami.
2. Uśpienie - przerwanie budzi układ - jest okej, jak wyżej.
3. Zamrożenie - nie jest okej, klawisze raz dają reakcję, raz nie dają,
czasem trzeba mocno wciskać po kilka razy, coś jak by się zawieszało.
Według specyfikacji z zamrożenia można wyjść za pomocą int0 i int1, a tu
takie jaja. Napięcia okej, próbowałem na zboczach/poziomach, ale skoro
działa na uśpieniu okej...

Jakieś sugestie? Albo czegoś nie wiem?

--
pozdrawia Adam
foto, muzyka i inne: www.smialek.prv.pl

robmac
Guest

Sun Oct 15, 2006 8:39 pm   



Janko Muzykant napisał(a):
Quote:
Int0 i int1 zwieram do masy. Wywołuję tym przerwanie, które odwraca bit,
który steruje ledą, żeby było widać co i jak.
1. Tryb bez oszczędności - wszystko jest ok i zgodnie z przewidywaniami.
2. Uśpienie - przerwanie budzi układ - jest okej, jak wyżej.
3. Zamrożenie - nie jest okej, klawisze raz dają reakcję, raz nie dają,
czasem trzeba mocno wciskać po kilka razy, coś jak by się zawieszało.
Według specyfikacji z zamrożenia można wyjść za pomocą int0 i int1, a tu
takie jaja. Napięcia okej, próbowałem na zboczach/poziomach, ale skoro
działa na uśpieniu okej...

Jakieś sugestie? Albo czegoś nie wiem?


A próbowałeś podciągnąć piny int0, int1 do plusa rezystorem?
Może są jakieś nieścisłości w specyfikacji.

pozdrawiam
Robert

Janko Muzykant
Guest

Mon Oct 16, 2006 7:04 am   



Quote:
A próbowałeś podciągnąć piny int0, int1 do plusa rezystorem?
Może są jakieś nieścisłości w specyfikacji.

Podciągnąłem i nic.
Obgryzłem program do minimum, może ktoś spojrzy.

org 00h
sjmp reset

org 03h ;obsługa przerwania int0
cpl p0.0 ;tu siedzi led
reti

org 33h
reset:
clr it0 ;int0 aktywowane poziomem
mov ie, #10000001b ;włączone przerwania z int0
petla:
mov pcon, #00000010b ;zamrożenie procesora
sjmp petla

Zamiana linii:
mov pcon, #00000010b ;zamrożenie procesora
na:
mov pcon, #00000001b ;uśpienie procesora
albo jej wywalenie sprawia, że układ zachowuje się logicznie.

PS. ie, pcon, it0 zadeklarowane ja należy ;)

--
pozdrawia Adam
foto, muzyka i inne: www.smialek.prv.pl

Heliogabal
Guest

Mon Oct 16, 2006 12:46 pm   



Użytkownik "Janko Muzykant":
Quote:
mov pcon, #00000010b ;zamrożenie procesora
na:
mov pcon, #00000001b ;uśpienie procesora
albo jej wywalenie sprawia, że układ zachowuje się logicznie.

W pierwszym trybie przerwania nie dzialaja.

Heliogabal

Janko Muzykant
Guest

Mon Oct 16, 2006 1:51 pm   



Quote:
mov pcon, #00000010b ;zamrożenie procesora
na:
mov pcon, #00000001b ;uśpienie procesora
albo jej wywalenie sprawia, że układ zachowuje się logicznie.

W pierwszym trybie przerwania nie dzialaja.

Wedle Atmela w 89S52 działają te dwa z wejść int. No i działają tylko
średnio chętnie.

--
pozdrawia Adam
foto, muzyka i inne: www.smialek.prv.pl

Heliogabal
Guest

Mon Oct 16, 2006 3:36 pm   



Użytkownik "Janko Muzykant":
Quote:
W pierwszym trybie przerwania nie dzialaja.

Wedle Atmela w 89S52 działają te dwa z wejść int. No i działają tylko
średnio chętnie.

Aha, wlasnie doczytalem. To krok naprzod w stosunku do standardowej 8051.

A co do programu. Podlacz 2 przyciski. Jednym zrob zapalanie diody, a drugim
wylaczanie. W ten sposob wyeliminujesz drganie stykow i ewentualne wlaczenie
i wylaczenie przy jednym nacisnieciu. Byc moze w tym trybie potrzeba wiecej
czasu na wybudzenie procesora, moze pomoze kondensator podczepiony
rownolegle do przycisku.

Heliogabal

Janko Muzykant
Guest

Mon Oct 16, 2006 4:10 pm   



Quote:
A co do programu. Podlacz 2 przyciski. Jednym zrob zapalanie diody, a drugim
wylaczanie. W ten sposob wyeliminujesz drganie stykow i ewentualne wlaczenie
i wylaczenie przy jednym nacisnieciu. Byc moze w tym trybie potrzeba wiecej
czasu na wybudzenie procesora, moze pomoze kondensator podczepiony
rownolegle do przycisku.

Wcześniej miałem pętlę opóźniającą w przerwaniu i różne warianty
''mrugania diodą''. Generalnie układ się ''zawiesza'' przy nerwowym
gmeraniu przy klawiaturze. Spróbuję jeszcze z kondensatorem, ale
znaczące opóźnienia nie będą mi pasowały w aplikacji docelowej, widać
taki urok tego wynalazku z zamrażaniem, że do szybkich spraw się nie
nadaje. No nic, do urządzeń ''standby'' 51 to nie to.

--
pozdrawia Adam
foto, muzyka i inne: www.smialek.prv.pl

Heliogabal
Guest

Mon Oct 16, 2006 5:20 pm   



Użytkownik "Janko Muzykant":
Quote:
Wcześniej miałem pętlę opóźniającą w przerwaniu i różne warianty
''mrugania diodą''. Generalnie układ się ''zawiesza'' przy nerwowym
gmeraniu przy klawiaturze. Spróbuję jeszcze z kondensatorem, ale

Ale po co to opoznienie w przerwaniu ? Jesli wyzwalasz przerwanie poziomem
to mozesz przez to je przegapic - przerwanie jest zglaszane dopoki poziom
utrzymuje sie na linii. Po obsluzeniu przerwania, gdy stan linii nadal jest
niski przerwanie zglaszane jest nadal.

Heliogabal

Janko Muzykant
Guest

Mon Oct 16, 2006 6:29 pm   



Quote:
Wcześniej miałem pętlę opóźniającą w przerwaniu i różne warianty
''mrugania diodą''. Generalnie układ się ''zawiesza'' przy nerwowym
gmeraniu przy klawiaturze. Spróbuję jeszcze z kondensatorem, ale

Ale po co to opoznienie w przerwaniu ? Jesli wyzwalasz przerwanie poziomem
to mozesz przez to je przegapic - przerwanie jest zglaszane dopoki poziom
utrzymuje sie na linii. Po obsluzeniu przerwania, gdy stan linii nadal jest
niski przerwanie zglaszane jest nadal.

Sorry, nie w przerwaniu, tylko po jego obsłużeniu, pętla na styk
klawiatury, zresztą było tam sporo różnych rzeczy, po których wykonaniu
(kilkaset ms) urządzenie zamarzało. Klawisze na int0/1 miały właśnie owo
urządzenie budzić.
Takie samo rozwiązanie na resecie działało okej (metoda znana z dawna,
kiedy była to jedyna możliwość budzenia po zamrożeniu). Tylko reset jest
jeden i trzeba kombinować, a mnie potrzebne akurat dwa klawisze.

Zresztą jak by był jakiś błąd, to program wariował by także po uśpieniu,
a działa okej.

--
pozdrawia Adam
foto, muzyka i inne: www.smialek.prv.pl

Patryk Sielski
Guest

Mon Oct 16, 2006 8:26 pm   



Janko Muzykant <jankomuzykant@wp.pl> pisze:
Quote:
3. Zamrożenie - nie jest okej, klawisze raz dają reakcję, raz nie dają,
czasem trzeba mocno wciskać po kilka razy, coś jak by się zawieszało.

Sprawdź amperomierzem, czy się zawiesza czy zamarza?

--
Pozdrawiam,
Patryk Sielski

Janko Muzykant
Guest

Mon Oct 16, 2006 9:38 pm   



Quote:
3. Zamrożenie - nie jest okej, klawisze raz dają reakcję, raz nie dają,
czasem trzeba mocno wciskać po kilka razy, coś jak by się zawieszało.

Sprawdź amperomierzem, czy się zawiesza czy zamarza?

Sprawdzałem no i różnie Sad
Czasem zostaje zamrożony (5uA), czasem idzie pełna (katalogowa) para
(kilkanaście mA)
(6MHz)

--
pozdrawia Adam
foto, muzyka i inne: www.smialek.prv.pl

elektroda NewsGroups Forum Index - Elektronika Polska - Problemy z zamrożeniem i reakcjami klawiszy w 89s52 - co może być nie tak?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map