eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › Zliczanie impulsów przez LPC1768
Ilość wypowiedzi w tym wątku: 5

  • 1. Data: 2010-08-18 15:00:57
    Temat: Zliczanie impulsów przez LPC1768
    Od: Mario <m...@p...onet.pl>

    Witam, mam problem z wykorzystaniem wejścia CAP w LPC1768 do zliczania
    impulsów - pomiaru częstotliwości. Zapewne podobnie jest sprawa
    rozwiązana w innych LPC np serii 2xxx więc znających się na ARMach z NXP
    proszę o pomoc.
    Otóż zamierzam wykorzystać wejście P0.24 skonfigurowane jako CAP3.1 do
    popędzania Timera3.
    Konfiguruję ten Timer

    const unsigned long TCR_COUNT_RESET = 2, TCR_COUNT_ENABLE = 0x01;

    LPC_SC->PCONP |= (1 << 23);
    LPC_TIM3->CCR &= ~(0x0);
    LPC_TIM3->TCR = TCR_COUNT_RESET;
    LPC_TIM3->CTCR = 0x101;
    LPC_TIM3->TCR = TCR_COUNT_ENABLE;

    Czyli kolejno załączam power dla timer3, ustawiam wszystkie bity compare
    na zero gdy pracuje jako counter, resetuję timer, ustawiam w CTCR
    rodzaj zbocza rosnący (bity 1,0) i wybór źródła na CAPx.1 (bity 3,2) ,
    startuję timer.
    Z kolei w konfiguracji portów wstawiam:

    LPC_PINCON->PINSEL1 |= (1<<17)|(1<<16);//set pin P0.24 as CAP3.1
    LPC_GPIO0->FIODIR &=~(1<<24);// set pin P0.24 as input

    Ta druga linia to dodatkowo bo raczej nie powinna mieć znaczenia.
    No i w
    ulCount4=LPC_TIM3->TC; nic się nie dzieje. Cały czas zero.
    Gdy przeprogramuję timer na napędzany z PCLK to sobie zlicza sygnał z
    wewnętrznego zegara. Z kolei port jest dobry bo po przestawieniu pinu
    P0.24 na GPIO

    LPC_PINCON->PINSEL1 &= ~(1 << 17) | (1 << 16); // set pin P0.24 as GPIO

    mogę zmiany jego stanu zliczać w pętli głównej. Ale ja muszę to zrobić
    na timerze.
    Any suggestions? Jakiś rejestr trzeba by jeszcze ustawić?

    --
    Pozdrawiam
    MD


  • 2. Data: 2010-08-18 20:52:14
    Temat: Re: Zliczanie impulsów przez LPC1768
    Od: Adam Dybkowski <a...@4...pl>

    W dniu 2010-08-18 17:00 Mario napisał(a):

    > Witam, mam problem z wykorzystaniem wejścia CAP w LPC1768 do zliczania
    [...]
    > LPC_TIM3->CCR &= ~(0x0);

    Gdzieś Ty wynalazł taki zapis? Teraz w szkołach tak uczą?
    Po pierwsze wystarczyłoby napisać:
    ~0
    zamiast potworka ~(0x0)
    ale i tak operacja AND z wartością ~0 nie zmieni wyniku. Na pewno o to
    chodziło?

    --
    Adam Dybkowski
    http://dybkowski.net/

    Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.


  • 3. Data: 2010-08-18 21:11:16
    Temat: Re: Zliczanie impulsów przez LPC1768
    Od: RoMan Mandziejewicz <r...@p...pl>

    Hello Adam,

    Wednesday, August 18, 2010, 10:52:14 PM, you wrote:

    >> Witam, mam problem z wykorzystaniem wejścia CAP w LPC1768 do zliczania
    > [...]
    >> LPC_TIM3->CCR &= ~(0x0);
    > Gdzieś Ty wynalazł taki zapis? Teraz w szkołach tak uczą?
    > Po pierwsze wystarczyłoby napisać:
    > ~0
    > zamiast potworka ~(0x0)
    > ale i tak operacja AND z wartością ~0 nie zmieni wyniku. Na pewno o to
    > chodziło?

    Nie wiem, jak we współczesnych zabawkach ale dawniej takiej operacji
    używało się do ustawienia flag...

    --
    Best regards,
    RoMan mailto:r...@p...pl
    Nowa strona: http://www.elektronika.squadack.com (w budowie!)


  • 4. Data: 2010-08-18 22:01:01
    Temat: Re: Zliczanie impulsów przez LPC1768
    Od: Mario <m...@p...onet.pl>

    W dniu 2010-08-18 22:52, Adam Dybkowski pisze:
    > W dniu 2010-08-18 17:00 Mario napisał(a):
    >
    >> Witam, mam problem z wykorzystaniem wejścia CAP w LPC1768 do zliczania
    > [...]
    >> LPC_TIM3->CCR &= ~(0x0);
    >
    > Gdzieś Ty wynalazł taki zapis? Teraz w szkołach tak uczą?
    > Po pierwsze wystarczyłoby napisać:
    > ~0
    > zamiast potworka ~(0x0)
    > ale i tak operacja AND z wartością ~0 nie zmieni wyniku. Na pewno o to
    > chodziło?

    To akurat powstało jako efekt kolejnych eksperymentów z ustawieniami
    &=~(0x111000) i &=~(0x111) które miały się zakończyć zerowaniem
    wszystkiego &=0 ale mi pozostała negacja. W sumie to i tak błędny zapis
    bo ustawiał starsze bity rejestru na 1 a program nie powinien ich
    ustawiać. W sumie to ten rejest CCR to już tak z desperacji ( po wielu
    godzinach walki) ruszyłem bo difoltowo jest ustawiany na zero czyli tak
    jak manual wymaga w przypadku stosowania wejścia CAP jako wejście
    licznika. Poprawienien tego teraz nie zmieniło nic na lepsze :(

    W sumie z dokumentacji mi wychodzi że liczy się rejest CTCR - tam
    wybieram że sygnałem napędzającym licznik jest pin CAP3.x a nie
    wewnętrzny zegar z preskalerem. No i rejestr PINSEL ustawiający ten pin
    na funkję CAP3.1 Ale może jeszcze coś gdzieś trzeba uatawić a jakoś nie
    mogę doczytać. W examplach znajduję jedynie przykłady pracy tych wejść
    jako capture.

    A co do zapisu to stosuję właśnie taki np
    LPC_GPIO0->FIODIR &=~(1<<24);
    po to żeby wyzerować jakiś bit w długim rejestrze.

    I nie wiem czego teraz w szkołach uczą. Ja jestem dość wiekowy rzeźbiarz
    asemblerowy który przeniósł się ostatnio na c.

    --
    Pozdrawiam
    MD


  • 5. Data: 2010-08-19 11:37:40
    Temat: Re: Zliczanie impulsów przez LPC1768
    Od: Mario <m...@p...onet.pl>

    W dniu 2010-08-18 17:00, Mario pisze:
    > Witam, mam problem z wykorzystaniem wejścia CAP w LPC1768 do zliczania
    > impulsów - pomiaru częstotliwości. Zapewne podobnie jest sprawa
    > rozwiązana w innych LPC np serii 2xxx więc znających się na ARMach z NXP
    > proszę o pomoc.
    > Otóż zamierzam wykorzystać wejście P0.24 skonfigurowane jako CAP3.1 do
    > popędzania Timera3.
    > Konfiguruję ten Timer
    >
    > const unsigned long TCR_COUNT_RESET = 2, TCR_COUNT_ENABLE = 0x01;
    >
    > LPC_SC->PCONP |= (1 << 23);
    > LPC_TIM3->CCR &= ~(0x0);
    > LPC_TIM3->TCR = TCR_COUNT_RESET;
    > LPC_TIM3->CTCR = 0x101;
    > LPC_TIM3->TCR = TCR_COUNT_ENABLE;

    Problem rozwiązany dzięki pomocy na zagranicznym forum.
    Pomieszałem w głowie biny z hexami.
    powinno być:
    LPC_TIM3->CTCR = 0x5;


    --
    Pozdrawiam
    MD

strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: