stary 89c2051 i kondzior na P1

Reply to
identifikator: 20110701
Loading thread data ...

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

Waldek

Reply to
Waldemar Krzok
Reply to
identifikator: 20110701

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ć?

Reply to
Michoo
Reply to
Grzegorz Niemirowski

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.

Reply to
John Smith

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?

Reply to
Michoo
Reply to
identifikator: 20110701

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.
Reply to
John Smith
Reply to
Grzegorz Niemirowski

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.

Reply to
John Smith

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

Reply to
Michoo

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.

Reply to
AlexY

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.

Reply to
John Smith
Reply to
identifikator: 20110701
Reply to
identifikator: 20110701
Reply to
identifikator: 20110701

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.

Reply to
Artur M. Piwko

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.