

Может чего не так делаю.
void InitPWM(void)
{
AT91F_PIO_CfgPeriph(AT91C_BASE_PIOA,(unsigned int) PWM0,0); // PWM0 маcка пина PA0
// или AT91F_PWMC_CH2_CfgPIO(); //и так тоже нехочет
AT91F_PWMC_CfgPMC();
AT91F_PWMC_CfgChannel(AT91C_BASE_PWMC,AT91C_PWMC_CHID0,0x0000000A,3000,1000);
AT91F_PWMC_StartChannel(AT91C_BASE_PWMC,AT91C_PWMC_CHID0);
}
int main(void)
{
InitPWM();
...
zzz:
...
if( ... /*Если надо поменять сважность (примерно раз за 5сек)*/)
{
AT91F_PWMC_UpdateChannel(AT91C_BASE_PWMC,AT91C_PWMC_CHID0,PWM_Duty);
}
...
// a,b,c усылаются в ПК, ради интереса.
a=AT91C_BASE_PWMC->PWMC_CH[AT91C_PWMC_CHID0].PWMC_CPRDR;
b=AT91C_BASE_PWMC->PWMC_CH[AT91C_PWMC_CHID0].PWMC_CDTYR;
c=AT91C_BASE_PWMC->PWMC_CH[AT91C_PWMC_CHID0].PWMC_CCNTR;
...
goto zzz;
}
Что после инициализации не работает, что после.
