logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

AT90S2313 i Bascom - błędne odczyty przycisków, zakłócenia przy dotyku

karlos79 28 Mar 2005 16:09 1461 5
REKLAMA
  • #1 1355801
    karlos79
    Poziom 33  
    Posty: 1768
    Pomógł: 254
    Ocena: 76
    Witam mam problem z obsługą przez procek przycisków.
    Procesor wpisuje sobie stany na chybił trafił albo w ogóle nie reaguje.
    Jesli zbliże do proska ręke albo wkrętak to po prostu szaleje.
    Dobrze odczytuje stan przycisków jeśli jedną końcówke multimetru połącze z masa a druga zwieram kołki złączy do których sa podłączone przyciski.Błagam pomóżcie, ponieważ jest to bardzo pilna sprawa.
    Załączniki:
    • program.txt (4.38 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • AT90S2313 i Bascom - błędne odczyty przycisków, zakłócenia przy dotyku przycisk.gif (3.91 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • Pomocny post
    #2 1355833
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    1. rezystor wywalić - przyciski bezpośrednio do GND
    2. diody odwrotnie (obydwie)
    3. w kodzie (część konfiguracyjna) uaktywnić wewnętrzne podciąganie do Vcc PIND5 i PIND6 (PORT.X = 1 : DDR.X = 0)
    4. no i oczywiście zmienić interpretację przycisków w programie na przeciwny stan
    Pozdr, Light-I
  • REKLAMA
  • #3 1355856
    karlos79
    Poziom 33  
    Posty: 1768
    Pomógł: 254
    Ocena: 76
    Wielkie dzięki jutro wprowadze poprawki i sprawdze.
    Jeszcze jedna sprawa.
    Czy możesz wyjaśnić mi tak łopatologicznie dlaczego mój układ tak się zachowyje w takiej konfiguracji?
    W symulacji wszystko śmiga świetnie.
  • REKLAMA
  • Pomocny post
    #4 1355864
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    Tak jak twój program kofiguruje, piny są w stanie wysokiej impedancji, ustawione jako wejścia (PORT.X = 0; DDR.X = 0) i losują wszystko z otoczenia, a jak włączysz podciągnięcie, to masz na PIN.X stabilny stan = 1, bo wewnętrzne rezystory (ok. 50 k) ciągną to do Vcc. Jak zewrzesz przyciskiem pin z masą, wewnętrzny rezystor nie zaprotestuje, bo płynie przez niego Vcc/50 [mA] ( więc dla 5 V wyjdzie 100 µA), a na PIN.X mamy wtedy 0.
    A w symulacji PIN.X są od tego, aby do nich wpisywać zewnętrzne stany, więc jak nic nie wpiszesz, to i program się piknie wykona... ;)
    Pozdrawiam, Light-I
  • REKLAMA
  • #5 1356246
    karlos79
    Poziom 33  
    Posty: 1768
    Pomógł: 254
    Ocena: 76
    No teraz to już wszystko jasne!
    Jeszcze raz dziękuje bardzo za okazaną mi pomoc.
    No i oczywiście nie zapomne poinformować o wynikach :)
    Pozdrawiam
  • #6 3030719
    karlos79
    Poziom 33  
    Posty: 1768
    Pomógł: 254
    Ocena: 76
    Witam
    Temet już jest dawno zakończony.
    Po wprowadzeniu poprawek wszystko ruszyło.
    Pozdrawiam.
    P.S
    Temat zamykam.
REKLAMA