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

LPC1114 - Konfiguracja przerwań PIOINT dla impulsatora nie działa poprawnie

docencior 11 Cze 2015 23:12 858 2
REKLAMA
  • #1 14764553
    docencior
    Poziom 10  
    Posty: 77
    Ocena: 9
    Witam

    Mam problem z LPC1114 i impulsatorem, do rzeczy.

    Kod wygląda tak

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Kod przerwań tak:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Zmienna numerek(volatile int numerek=100;) powinna się inkrementować lub dekrementować przy ruchach impulsatora. Niestety wynik jest taki, że zmienna numerek zwiększa się lub zmniejsza o jakieś losowe wartości (najczęściej o jeden lub dwa chociaż zdarza się, że po jednym "tyknięciu" o 50). Czasami nawet zwiększa się zamiast zmniejszać i na odwrót.

    Jaka jest tego przyczyna? Próbowałem zwiększać delayck (argument to ilość NOP) ale daje to dziwne rezultaty. Dodam, że do pinów impulsatora są dołączone malutkie kondensatory do masy by zniwelować drgania styków. Mierzyłem oscyloskopem czas przejścia ze stanu wysokiego na niski (falling edge) na pinach impulsatora i jest on trochę krótszy niż 100ns, nie występują żadne drgania stykow.

    Będę wdzięczny za każdą pomoc.
  • REKLAMA
  • #2 14789845
    Badmaneq
    Poziom 23  
    Posty: 567
    Pomógł: 76
    Ocena: 23
    Ponieważ występują losowe drgania styków...
  • #3 14789872
    docencior
    Poziom 10  
    Posty: 77
    Ocena: 9
    Udało mi się rozwiązać problem. Wynikał on ze zbyt wolnego czasu opadania i narastania sygnałów (zbyt duży kondensator na stykach)
REKLAMA