Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Промогите с PWMC at91sam7s128
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
OsAlex
help.gif Помогите плз. запустить шим. Кажеться перепробовал всё. Ничего не понимаю, то счетик считает то не считает. Пин то дыгается то не дрыгается, а если и дрыгается то непонятно как.cranky.gif Ничего не понимаю.

Может чего не так делаю.

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;
}

Что после инициализации не работает, что после.
help.gif Помогите плз.
skn
Вот мои программки, все работает.


Код
InitPWM(void)
{
    AT91F_PIO_OutputEnable(AT91C_BASE_PIOA, (1<<PWMChan));
    AT91F_PIO_A_RegisterSelection(AT91C_BASE_PIOA, (1<<PWMChan));//переключил управление портои от переферии А
    AT91F_PIO_Disable(AT91C_BASE_PIOA, (1<<PWMChan));

    AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, (unsigned int)1<<AT91C_ID_PWMC);
    AT91C_BASE_PWMC->PWMC_MR = 0x10001;
    AT91F_PWMC_CfgChannel(AT91C_BASE_PWMC, PWMChan,   0x20B, Period, StartDuty);                                        //установил параметры
    
    AT91C_BASE_PWMC->PWMC_ENA = (1<<PWMChan);
    AT91F_PWMC_UpdateChannel(AT91C_BASE_PWMC, PWMChan, StartDuty);
    
}

void SetPWM(unsigned int DutyArg)
{
    AT91F_PWMC_UpdateChannel(AT91C_BASE_PWMC, PWMChan, DutyArg);
}
OsAlex
Большой tnx.! Заработало!
Хотя всёравно не понятно чего не работало 8(. Если верить кейлу3 то в PIOA все тоже самое, в моём случае (CMR=0xA) MR вроде нипричем, да и первый Update тоже делал.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.