Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> STM32 Таймер. Обратный отсчет 
:(
    Опции темы
supercelt
Дата 10.5.2021, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



Добрый день! Подскажите пожалуйста, что не так в коде? Надо настроить таймер2 МК stm32f405. Обратный отсчёт. начать с 20 сек и когда будет 0 - выкинуть в прерывание. У меня прерывание срабатывает сразу же после включения платы.
Код

RCC->APB1ENR |= RCC_APB1ENR_TIM2EN;
    TIM2->CR1 &= ~TIM_CR1_CEN;
    TIM2->CR1 |= TIM_CR1_DIR;
    TIM2->EGR |= TIM_EGR_UG;
    TIM2->PSC |= (uint16_t)(APB1_FREQUENCY/2000)-1;    //Задаём частоту таймера = 2000 Hz. (84000000/2000) - 1; (за 1 сек таймер тикает 2000 раз, т.е. с частотой 2 KHz; 84000000 - максимальна частота шины APB1)
    TIM2->ARR = 0;
    TIM2->DIER |= TIM_DIER_UIE;
    TIM2->CNT = 2000*20;
    NVIC_EnableIRQ(TIM2_IRQn);
    __NOP();
    __NOP();
    TIM2->SR &= ~(TIM_SR_UIF);
    TIM2->CR1 |= TIM_CR1_CEN;


void TIM2_IRQHandler(void){
    if(TIM2->SR & TIM_SR_UIF){
        TIM2->SR &= ~TIM_SR_UIF;
        second_counter++;
        interrupt_flag = 1;
    }
}


Это сообщение отредактировал(а) supercelt - 10.5.2021, 15:17
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0887 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.