Миландр

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

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




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
СообщениеДобавлено: 2018-фев-26 21:20 
Не в сети

Зарегистрирован: 2017-июл-16 10:02
Сообщения: 8
Для режима симуляции. Желательно, на ASM. А то что-то не получается с налету.
Спасибо.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-фев-28 17:42 
Не в сети

Зарегистрирован: 2017-апр-26 14:51
Сообщения: 159
Откуда: ПКК "Миландр"
В листинге пример инициализации таймера из нашего учебного курса. Если скомпилировать, то из дизассемблера затем можно взять ассемблерный код.

Открыть
Код:

void TMR_Initialize (void)
{
  TIMER_CntInitTypeDef TimerInitStruct;

  RST_CLK_PCLKcmd (RST_CLK_PCLK_TIMER1, ENABLE);

  // Деинициализация таймера TIMER1
  TIMER_DeInit (MDR_TIMER1);

  // Выбор предделителя тактовой частоты таймера TIMER1
  TIMER_BRGInit (MDR_TIMER1, TIMER_HCLKdiv1);

  // Конфигурация таймера TIMER1
  TIMER_CntStructInit (&TimerInitStruct);
  TimerInitStruct.TIMER_IniCounter       = 0;                          // Начальное значение таймера
  TimerInitStruct.TIMER_Prescaler        = 0xFFFF;                     // Предделитель частоты
  TimerInitStruct.TIMER_Period           = 0x4C4;                      // Период таймера
  TimerInitStruct.TIMER_CounterMode      = TIMER_CntMode_ClkFixedDir;  // Режим счета
  TimerInitStruct.TIMER_CounterDirection = TIMER_CntDir_Up;            // Направление счета

// Инициализация таймера TIMER1
  TIMER_CntInit (MDR_TIMER1, &TimerInitStruct);

  // Выбор источников прерываний
  TIMER_ITConfig (MDR_TIMER1, TIMER_STATUS_CNT_ARR, ENABLE);

  // Включение таймера TIMER1
  TIMER_Cmd (MDR_TIMER1, ENABLE);

  // Назначение приоритета аппаратных прерываний от таймера TIMER1
  NVIC_SetPriority (Timer1_IRQn, 1);

  // Включение аппаратных прерываний от таймера TIMER1
  NVIC_EnableIRQ (Timer1_IRQn);
}

// Обработчик аппаратных прерываний от таймера TIMER1
void Timer1_IRQHandler (void)
{
  // Сброс прерывания от таймера TIMER1
  TIMER_ClearITPendingBit (MDR_TIMER1, TIMER_STATUS_CNT_ARR);

  // Do something

}

Закрыть


Про симулятор не понял. Наша периферия в симуляторе не работает, нет ее там. Cимулировать можно поведение стандартного ядра Cortex Mx.

_________________
Отдел технической поддержки support@milandr.ru


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-мар-01 17:48 
Не в сети

Зарегистрирован: 2017-июл-16 10:02
Сообщения: 8
Спасибо!


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

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


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

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


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

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