roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 04:03

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: PWM3 AT91SAM7S Keil
СообщениеДобавлено: 13 янв 2016, 13:57 
Не в сети

Зарегистрирован: 13 янв 2016, 12:46
Сообщения: 2
Здравствуйте.
Подсажите как вывести 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]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PWM3 AT91SAM7S Keil
СообщениеДобавлено: 13 янв 2016, 15:15 
Не в сети

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PWM3 AT91SAM7S Keil
СообщениеДобавлено: 13 янв 2016, 16:08 
Не в сети

Зарегистрирован: 13 янв 2016, 12:46
Сообщения: 2
Виноват, извините.
По впросу решено, подсказали на другом форуме, спасибо "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));


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO