eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikatimer w SAM7
Ilość wypowiedzi w tym wątku: 3

  • 1. Data: 2009-08-25 08:36:01
    Temat: timer w SAM7
    Od: "marcin" <m...@n...pl>

    Witajcie,

    Próbuję uruchomić timer1 na AT91SAM7S512. Na początek skopiowałem z noty
    Atmela przykład z PWM (
    http://www.atmel.com/dyn/resources/prod_documents/do
    c2682.pdf ). SAM7
    pracuje pod kontrolą freeRTOS. Kod wygląda tak:

    void initTimer1()
    {
    AT91C_BASE_TC1->TC_CCR = TC_CLKDIS ; /* Disable the Clock Counter
    */
    Io_SetPeripheralB( IO_PA15 );
    Io_SetPeripheralB( IO_PA16 );
    Io_PioDisable( IO_PA15 );
    Io_PioDisable( IO_PA16 );
    // *PIO_PDR = (1<<15) ; /* Define TIOA1 and TIOB1 as peripheral */
    // * Timer/Counter 1 mode configuration
    AT91C_BASE_TC1->TC_CMR =
    TC_BSWTRG_SET_OUTPUT | /* BSWTRG :
    software trigger set TIOB */
    TC_BCPC_TOGGLE_OUTPUT | /* BCPC :
    Register C compare toggle TIOB */
    TC_BCPB_TOGGLE_OUTPUT | /* BCPB :
    Register B compare toggle TIOB */
    TC_ASWTRG_SET_OUTPUT | /* ASWTRG :
    software trigger set TIOA */
    TC_ACPC_TOGGLE_OUTPUT | /* ACPC :
    Register C compare toggle TIOA */
    TC_ACPA_TOGGLE_OUTPUT | /* ACPA :
    Register A compare toggle TIOA */
    TC_WAVE | /* WAVE :
    Waveform mode */
    TC_CPCTRG | /* CPCTRG :
    Register C compare trigger ena */
    TC_EEVT_XC0 | /* EEVT :
    XC0 as external event (TIOB=out */
    TC_CLKS_MCK2 ; /* TCCLKS : MCK
    / 2 */
    // Compare registers initialization
    AT91C_BASE_TC1->TC_RC = 0x80E8 ; /* 1kHz PWM
    generation */
    AT91C_BASE_TC1->TC_RB = 0x4074 ; /* 30% duty cycle on
    TIOB1 */
    AT91C_BASE_TC1->TC_RA = 0x26AC ; /* 50% duty cycle on
    TIOA1 */
    AT91C_BASE_TC1->TC_CCR = TC_CLKEN ; /* Enable the Clock
    counter */
    AT91C_BASE_TC1->TC_CCR = TC_SWTRG ; /* Trig the timer */
    }

    Wg. noty Atmela po wykonaniu tego kodu powinienem mieć na TIOA1 i TIOB1 dwa
    przebiegi PWM 1kHz, niestety jest głucha cisza. Pewnie popełniam jakiś
    "oczywisty błąd". Z tego co się orientuję, to freeRTOS włada jedynie timerem
    TC0, TC1 jest do pełnej dyspozycji programisty. Nie mam pomysłu, to mój
    pierwszy program na ARM i freeRTOS zarazem, i utknąłem w ciemnej d...
    Ogólnie system żyje, mogę majtać tymi liniami z poziomu PIO, timingi i
    wszelkie inne objawy życia freeRTOS są w porządku.
    Proszę o pomoc jeżeli ktoś ma jakiś pomysł...
    --
    Pozdrawiam grupę!
    Marcin



  • 2. Data: 2009-08-25 16:00:38
    Temat: Re: timer w SAM7
    Od: Paweł <p...@n...pl>

    > Proszę o pomoc jeżeli ktoś ma jakiś pomysł...

    Czy włączyłeś w PMC zegar do TC1 ?

    Paweł


  • 3. Data: 2009-08-25 19:50:35
    Temat: Re: timer w SAM7
    Od: "marcin" <m...@n...pl>

    Użytkownik "Paweł" <p...@n...pl> napisał w wiadomości
    news:h712g7$f$1@nemesis.news.neostrada.pl...

    > Czy włączyłeś w PMC zegar do TC1 ?

    Coś ruszylo :-))) Dziękuję!!!
    --
    Pozdrawiam!
    Marcin


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: