Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

atmega32 zle zlicza impulsy zew. T0

uzi18 09 Kwi 2008 10:53 1178 3
  • #1 09 Kwi 2008 10:53
    uzi18
    Poziom 23  

    Walcze z licznikiem na Atmega 32 inicjacja wyglada tak :

    Code:

    DDRB = 0xff; // DDRB jako wyjscie
    // t0 JAKO LICZNIK
    PORTB |= _BV(0);    // BEZ PODCIAGNIECIA NIE CHCE LICZYC
    TCCR0 = _BV(CS01)|_BV(CS02); //_BV(CS00)|  cs0 rosnace/~opadajace zbocze
    TCNT0 = 200;
    TIMSK |= _BV(TOIE0);  // T0 wywoluje przerwanie


    Caly problem polega na tym ze nie wiem czmu bez ustawienia w PORTB0 bitu 0 nie chce liczyc zewnetrznych impulsow.

    Pin jest podciagniety zewnetrznie drabinka 4k7 i elektrolit 1u od pina do masy .

    Max czestotoliwosc to ok. 20Hz

    Bez podciagniecia wewnetrznego licznik zwieksza sie tylko o 1 (wartosc 201) i dalej nie liczy.
    Za to z podciagnieciem potrafi zliczyc kilka-kilkadziesiat impulsow na raz.

    Prosilbym o pomoc w tej sprawie.
    Wole jednak uczyc sie pisac programy w C niz w Bascom.

    Moze to jest problem z aplikacja i zle dobranym filtrem RC ale na innych elementach wcale nie jest lepiej.

    Pozdrawiam
    Bartłomiej Zimoń

    0 3
  • #2 09 Kwi 2008 11:19
    zumek
    Poziom 39  

    Skoro PINB0 ma być wejściem , to po jakie licho ustawiasz go jako wyjście :?:

    Code:

    DDRB = 0xff; // DDRB jako wyjscie


    Piotrek

    0
  • #3 09 Kwi 2008 11:19
    zerpo
    Poziom 22  

    Code:
    DDRB = 0xff; // DDRB jako wyjscie

    Dlaczego ustawiasz PORTB jak wYjście, a nie jako wEjście?
    Spróbuj ustawić jako wejście, może zadziała.

    0
  • #4 09 Kwi 2008 13:54
    uzi18
    Poziom 23  

    Nie wiem taki byl przyklad. Bezmyslnie skopiowalem.

    Moze i macie racje.
    Powinienem wykonac jeszcze :

    Code:
    DDRB &= ~(_BV(PB0));


    Sprawdze przy najblizszej okazji i dam znac.

    Powiem jeszcze tylko ze licznik przestal swirowac jak tylko podlaczylem pod niego docelowy uklad z wyjsciem OC do zliczania.
    Moj glowny blad (podczas testow) polegal na tym ze z przycisku byly generowane impulsy zamiast z tranzystora - jak widac czasem szumy stykow psuja cala impreze.

    Dzieki wam wielkie.

    0