PWM na SAM7S32 nie uruchamia się.

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Polish to

Witam.

Mam SAM7S32. Chcę uzyskać PWM. Procesor działa z pełną prędkoscią i
poprawnie (przerwanie PIT dziala dokładnie z takim okresem z jakim
powinno, więc mam pełna predkość zegara taktującego rdzeń).

Wziąłem do reki lib_AT91..., przejrzalem wszystko w internecie co mi
wpadło w łapska dotyczące PWM i wyprodukowalem kod, który _nie działa_.

AT91F_PWMC_StopChannel( AT91C_BASE_PWMC, AT91C_PWMC_CHID0 );
AT91F_PIO_CfgPeriph( AT91C_BASE_PIOA, AT91C_PA11_PWM0, 0 );
//AT91F_PIO_CfgPeriph( AT91C_BASE_PIOA, 0, AT91C_PA11_PWM0 );

AT91F_PWMC_CfgPMC();
//AT91F_PWMC_CH0_CfgPIO();

AT91F_PWMC_CfgChannel(
      AT91C_BASE_PWMC
    , AT91C_PWMC_CHID0
    , 0 //0x0a
    , 100
    , 75
);

//AT91C_BASE_PWMC_CH0->PWMC_CMR = AT91C_PWMC_CPRE_MCKA|AT91C_PWMC_CPOL;

AT91F_PWMC_StartChannel(
     AT91C_BASE_PWMC
   , AT91C_PWMC_CHID0
);

Komentarze pokazują miejsca eksperymentowania. Mimo zaklęć pin PA11
pozostaje martwy, choć fizycznie jest odpinany z GPIO, bo nie mogę nim
recznie sterować (a sąsiednimi mogę). Pin PA11 jest sprawny elektrycznie
- nie inicjujac PWM mogę nim recznie machać z kodu.

Zakładam więc, że potrafie podpiąc PWM do pinu, ale z jakiejś przyczyny
PWM nie pracuje. Co ciekawe w zależności od tego jakie mam szczęscie
podczas wlaczania zailania pin pozostaje albo w stanie 1 albo w 0 (i juz
sie nie zmienia). Errate czytalem, nic mi w oko nie wpadło.

Czy ktoś może zasugerować czego mi brakuje? Może gdzieś nie podpinam
głównego zegara do modułu PWM? Ale chyba to powinno się zrobić samo w
PWMC_CfgPMC().

Brak mi już pomysłów co sprawdzić, spędziłem nad tym jakieś 1.5
popoludnia i bez efektów. Poratuje ktoś?

Site Timeline