stary 89c2051 i kondzior na P1

Oct 20, 2011 18 Replies

czy mo¿na do³±czyæ któr±¶ liniê portu do przycisku z du¿ym kondziorem? chodzi o szybko¶æ narastania - ma Kto¶ do¶wiadczenie?


Przeczytaj jeszcze raz co napisałeś i dopisz jeszcze o co ci chodzi.

Waldek

a co nie zrozumia³e¶? :oP

chodzi o podpiêcie przycisku do portu, ale równolegle z du¿ym kondziorem... no chyba, ¿e Kto¶ ma inny tani pomys³ na drgania zestyków?

W dniu 20.10.2011 17:57, identifikator: 20110701 pisze:

Po pierwsze to jeszcze rezystor w szereg, po drugie czemu miałoby nie działać?

identifikator: 20110701 snipped-for-privacy@go2.pl napisa³(a):

Zawsze mo¿esz eliminowaæ skutki drgañ programowo, licz±c czas od ostatniej zmiany stanu.

W dniu 2011-10-20 18:02, Michoo pisze:

Odpowiem Ci receptą, na Twoje pytanie użyte w charakterze odpowiedzi: wystarczy zdjąć oscylogram a będziesz miał odpowiedź. Nie tak się niweluje drgania zestyków. K.

W dniu 20.10.2011 18:29, John Smith pisze:

Układ:

^ | [ ] R1 | Pin ----[ ]--- | R2 | | \ S1 = C1 \ | | - - Opis: Normalnie mamy na C1 wysoki stan z podciągnięcia przez R1 do + zasilania, po naciśnięciu S1 C1 zaczyna się rozładowywać przez R2 do masy. Stała czasowa jest tak dobrana, że rozładowanie C1 do poziomu przełączenia pinu trwa dłużej niż wynosi ewentualny czas odbijania pinu.

Na oscylogramie powinien być standardowy wykres rozładowywania kondensatora z ewentualnymi drobnymi podskokami "w górę".

Dlaczego taki układ nie zadziała?

bo przy pewnym napiêciu oba tranzystowy podstawowej komórki NOT technologii cmos bêd± przewodzi³y, to ponoæ szkodliwe... jakie¶ tam tyrtystory i takie tam... chyba.

W dniu 2011-10-20 18:58, Michoo pisze:

Aby taki układ jeszcze miał szansę niezawodnego działania, musiałbyś dodać wejście z histerezą napięcia. Gdy drgania zestyków wygenerują przebieg pomiędzy poziomami L i H, będą przypadkowe interpretacje naciśnięcia klawisza. Wieloletnie doświadczenia z klawiaturami, wskazują, iż zjawisko odbijania zestyków nie ma charakteru stałego. Na początku używania trafiają się takie, co nie odbijają w ogóle lub mało, po kilku latach i zakurzeniu, trzeszczą aż miło. Układ z analogowym filtrem traci też na dynamice obsługi, klawisz trzeba przytrzymać, aby się kondensator przeładował. Obecnie przyjęło się programowe odczytywanie stanu zestyku, typowo po

20ms, porównaniu stanów i gdy wskazania naciśnięcia są jednakowe sygnalizacja takiego zdarzenia. K.

John Smith snipped-for-privacy@buziaczek.pl napisa³(a):

A port nie ma takiej histerezy? Nie mogê jako¶ wygooglaæ budowy wewnêtrznej portów tego procka.

W dniu 2011-10-20 21:20, Grzegorz Niemirowski pisze:

W "starym 8051"? Jak nie ma w dokumentacji, to w scalaku też nie ma. Zresztą, doradzałem pobawienie się oscyloskopem. K.

W dniu 20.10.2011 21:17, John Smith pisze:

Jak bardzo trzeba się postarać, żeby stan na przycisku nie był ustalony jeszcze np po 50ms?

Btw: ja nie twierdzę, że to jest dobry układ, czy też nie jest w środowisku produkcyjnym. Po prostu imo taki układ będzie działać zgodnie z założeniami (skutkując być może przy okazji "leniwą" klawiaturą) ale dla hobbisty powinien spokojnie wystarczyć.

Tak. Ale przy cyfrowym filtrowaniu tez trzeba. Może odrobinę krócej.

Czyli po zdarzeniu na pinie odpala się odczyt za 20ms z timera? Ja znam jeszcze 2 metody:

- pooling np co 5ms do bufora przesuwanego, zgłoszenie zbocza narastającego gdy mamy 0x0F a opadającego gdy jest 0xF0 (lub włączenie takiej funkcjonalności pinu jak procek obsługuje ;))

- po odebraniu przerwania z danego pinu ignorowanie kolejnych przez Xms lub ignorowanie tych następujących mniej niż t od poprzedniego

U¿ytkownik "identifikator: 20110701" napisa³:

Skoro potrafisz tworzyæ w³asne nazewnictwo, to pewnie bêdziesz potrafi³ znale¼æ w³asne rozwi±zanie.

Remek

Komdzior, komp, nieuk.

Użytkownik John Smith napisał: [..]

Tej metody + kondensatory bodajze 100nF bez opornikow uzylem w ukladzie z 89c2051 jak spawarka sasiada wyzwalala wejscia klawiszy. Czasy dobieralem eksperymentalnie.

Hobbysta nabierze złych nawyków, a później w CV będzie uparcie twierdził, że N lat zajmuje się elektroniką. Autor wątku jest na dobrej drodze zostania wiecznym amatorem.

20ms, czas stały. Przerwanie wyzwalane timer'em.

Przy systemach pracujących w czasie rzeczywistym, to prosty sposób na zawieszanie się oprogramowania wraz z zużywającym się zestykiem. K.

wolê byæ nieuk ni¿ burak capie...

chodzi o w³±czanie i wy³±czanie z trybu u¶pienia procka... nie wiem, ale mo¿e macie racjê i oby³o by siê z samym przyciskiem...

jakbym procedurê obs³ugi wyj¶cia napisa³ tak±: przerwanie: reti a w programie g³ównym czeka³ z sekundê...

In the darkest hour on Thu, 20 Oct 2011 18:58:59 +0200, Michoo <michoo snipped-for-privacy@vp.pl screamed:

Już mu to kiedyś podsyłałem. Widać za skomplikowane.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required