Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2017-дек-18 00:27

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




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Помогите разобраться с ШИМ
СообщениеДобавлено: 2017-окт-03 14:27 
Не в сети

Зарегистрирован: 2011-май-26 11:28
Сообщения: 3
Задача: Настроить ШИМ контролера на 1 канале 3-го таймера контроллера. За основу взят пример настройки, который приведен в примере настройки ШИМ для всех каналов выбранного таймера из официальной документации.

Код:
void init_channel_SHIM()
   {
   // --- разрешение тактовой частоты таймеров
   ARM_RSTCLK->PER_CLOCK |= ARM_PER_CLOCK_TIMER3;

   // --- включение тактовой частоты таймеров
   ARM_RSTCLK->TIM_CLOCK |= ARM_TIM_CLOCK_EN3; 

   // --- настройка таймера
   ARM_TIMER3->TIM_CNTRL = 0x00000000;         // настройка, как простой счетчик
   ARM_TIMER3->TIM_CNT =   0x00000000;         // начальное значение счетчика
   ARM_TIMER3->TIM_PSG =   KHZ/1000-1;         // предделитель частоты, 1 тик таймера = 1 мкс
   ARM_TIMER3->TIM_ARR =   26;                 // основание счета
   ARM_TIMER3->TIM_IE =    0x00000022;         // разрешение прерывание по переднему фронту только для канала 1

   // --- первый канал таймера 3 - ШИМ
   ARM_TIMER3->TIM_CH1_CNTRL =  0x00000C00;    // выработка сигнала REF по принципу:
                                     // 1 всегда кроме CNT>CCR и CNT<CCR1 - в этом случае 0
   ARM_TIMER3->TIM_CH1_CNTRL1 = 0x00000099;   // канал всегда работает на выход и на выход подается REF
   ARM_TIMER3->TIM_CH1_CNTRL2 = 0x00000004;   // разрешение работы регистра CCR1

   // --- настройка регистров ССR, CCR1
   ARM_TIMER3->TIM_CCR1 = 20;
   ARM_TIMER3->TIM_CCR11 = 25;
   // --- разрешение работы таймера
   ARM_TIMER3->TIM_CNTRL = 0x00000001; // включается так, чтобы не сбить контроль
    }

Как я понимаю, в результате указанной настройки первый канал таймера должен быть настроен и на соответствующих выводах микроконтроллера я должен увидеть импульсы, соответствующие выполненной настройке: 20 мкс уровень логической 1, 5 мкс уровень логического 0. Однако нигде не видно никакого результата.
В процессе работы был настроен обработчик прерывания от таймера 3, в котором выполнялся анализ регистра STATUS таймера. В регистре устанавливались флаги CNT=ARR, CNT=0, флаг-признак того, что все это возникло на 1-ом канале таймера 3.
Вопросы:
1. Все ли настройки я выполнил для обеспечения работы 1 канала таймера 3 в режиме ШИМ.
2. На каких выводах искать сигнал.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите разобраться с ШИМ
СообщениеДобавлено: 2017-окт-03 15:02 
Не в сети

Зарегистрирован: 2010-сен-21 12:57
Сообщения: 641
Откуда: г. Санкт-Петербург
Allykapg писал(а):
...
Вопросы:
1. Все ли настройки я выполнил для обеспечения работы 1 канала таймера 3 в режиме ШИМ.
2. На каких выводах искать сигнал.

1. необходимо настроить выводы PB0,PB1 для работы с таймером 3.
2. на выводах PB0,PB1


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите разобраться с ШИМ
СообщениеДобавлено: 2017-ноя-20 12:17 
Не в сети

Зарегистрирован: 2011-май-26 11:28
Сообщения: 3
vasili писал(а):
Allykapg писал(а):
...
Вопросы:
1. Все ли настройки я выполнил для обеспечения работы 1 канала таймера 3 в режиме ШИМ.
2. На каких выводах искать сигнал.

1. необходимо настроить выводы PB0,PB1 для работы с таймером 3.
2. на выводах PB0,PB1


Благодарю за помощь! Все завелось!


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

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


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

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


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

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB