roboforum.ru

Технический форум по робототехнике.

PWM3 AT91SAM7S Keil

ARM7, ARM9, ARM11 etc.

PWM3 AT91SAM7S Keil

Сообщение Vladv002 » 13 янв 2016, 13:57

Здравствуйте.
Подсажите как вывести PWM на PA11,PA12,PA13,PA14 соответственно.
Я только начинаю, не могу даже справится с PWM3
- нет сигнала ни на PA3 ни PA7:( Примеров много - НО без PWM3...
Вот рабочий пример НО PWM3 не работает.

[size=85][size=50]#include "Board.h" /* AT91SAMT7S64 ОПРЕДЕЛЕНИЯ для данной платы */
int main(void) // Keil µVision V4.74.0.22
{
AT91C_BASE_PMC->PMC_PCER = (1<<AT91C_ID_PWMC); // Peripheral Clock Enable (PMC_PCER)
AT91C_BASE_PWMC->PWMC_DIS = 0x0F; // PWM Disable Register. Регистр отключения ШИМ
AT91C_BASE_PWMC->PWMC_MR = 0x7010701;// Регистр MCK/8 clkB
/// ВЫВОД ШИМ 1
AT91C_BASE_PWMC->PWMC_CH[0].PWMC_CMR = AT91C_PWMC_CPRE_MCKA; //Channel Mode Register
AT91C_BASE_PWMC->PWMC_CH[0].PWMC_CDTYR = 2400/2; //Channel Duty Cycle Register
AT91C_BASE_PWMC->PWMC_CH[0].PWMC_CPRDR = 2400-10; //Channel Period Register (freq+20)
AT91C_BASE_PWMC->PWMC_ENA = 1; // Enable PWM на PA0
/// ВЫВОД ШИМ 2
AT91C_BASE_PWMC->PWMC_CH[1].PWMC_CMR = AT91C_PWMC_CPRE_MCKA; //Channel Mode Register
AT91C_BASE_PWMC->PWMC_CH[1].PWMC_CDTYR = 2400/2; //Channel Duty Cycle Register
AT91C_BASE_PWMC->PWMC_CH[1].PWMC_CPRDR = 2400; //Channel Period Register (freq+20)
AT91C_BASE_PWMC->PWMC_ENA = 2; // Enable PWM на PA1
/// ВЫВОД ШИМ 3
AT91C_BASE_PWMC->PWMC_CH[2].PWMC_CMR = AT91C_PWMC_CPRE_MCKA; //Channel Mode Register
AT91C_BASE_PWMC->PWMC_CH[2].PWMC_CDTYR = 2400/2; //Channel Duty Cycle Register
AT91C_BASE_PWMC->PWMC_CH[2].PWMC_CPRDR = 2400; //Channel Period Register (freq+20)
AT91C_BASE_PWMC->PWMC_ENA = 4; // Enable PWM на PA2
/// ВЫВОД ШИМ 4 !!! - НЕ МОГУ вывести 4 канал ШИМ
AT91C_BASE_PWMC->PWMC_CH[3].PWMC_CMR = AT91C_PWMC_CPRE_MCKA; //Channel Mode Register
AT91C_BASE_PWMC->PWMC_CH[3].PWMC_CDTYR = 2400/2; //Channel Duty Cycle Register
AT91C_BASE_PWMC->PWMC_CH[3].PWMC_CPRDR = 2400; //Channel Period Register (freq+20)
AT91C_BASE_PWMC->PWMC_ENA = 8; // Enable PWM на PA3 - PA7 не реагирует
while (1);
}
[/size][/size]
Vladv002
 
Сообщения: 2
Зарегистрирован: 13 янв 2016, 12:46

Re: PWM3 AT91SAM7S Keil

Сообщение Madf » 13 янв 2016, 15:15

Да, у вас и с форматированием постов проблемы... :cry:
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: PWM3 AT91SAM7S Keil

Сообщение Vladv002 » 13 янв 2016, 16:08

Виноват, извините.
По впросу решено, подсказали на другом форуме, спасибо "DmitryM".
// Настройка портов ВЫВОДА для PWM PA11,PA12,PA13,PA14.
AT91C_BASE_PIOA->PIO_PDR = ((1 << 11)|(1 << 12)|(1 << 13)|(1 << 14));
AT91C_BASE_PIOA->PIO_BSR = ((1 << 11)|(1 << 12)|(1 << 13)|(1 << 14));
Vladv002
 
Сообщения: 2
Зарегистрирован: 13 янв 2016, 12:46


Вернуться в ARM

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1