User Tag List

Показано с 1 по 10 из 280

Тема: Микроконтроллеры STM32, "с нуля".

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    147
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    55 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Копаю таймеры.
    Взял в качестве подопытного Таймер2. Обычный такой, 16-разрядный, общего назначения.
    Запилил на нем мыргание светика раз в секунду.
    В общем случае инициализация и запуск таймера выглядит так -

    NVIC_EnableIRQ(TIM2_IRQn); //Запускаем контроллер прерываний, прицепляем к нему Таймер2.
    RCC->APB1ENR |= RCC_APB1ENR_TIM2EN; //Подаем клок на Таймер2, он болтается на АРВ1.
    TIM2->PSC = 16000-1UL; // Делитель на входе таймера. Делит до 65536 при желании. У нас частота, приходящая на АРВ1 - 16Мгц, поэтому делим на 16000.
    TIM2->ARR = 1000-1UL; // До скольки считает таймер. Типа TCNT на AVR... При значении 1000 мы получаем прерывания 16000000/16000/1000 = 1 прерывание в секунду.
    TIM2->DIER = TIM_DIER_UIE; // Включим прерывания от события update. Т.е., по достижению счета до ARR, происходит апдейт счетчика, и это событие инициирует прерывание.
    TIM2->CR1 = TIM_CR1_CEN; // Собственно, включаем таймер2.
    TIM2->CNT = 0; // Сбросим текущее значение таймера в 0, пускай считает дальше сам.
    Для ловли прерывания от таймера используем дежурную функцию -
    Код:
    void TIM2_IRQHandler(void)
    {
    if(TIM2->SR & TIM_SR_UIF)
        {
          TIM2->SR &= ~TIM_SR_UIF;  //сброс флага прерывания, иначе его зациклит.
        }
    //обработчик прерывания
    }
    Как бы и всё...
    Пойду дальше разбираться.
    Последний раз редактировалось Ewgeny7; 29.04.2014 в 12:19.
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 17
    Последнее: 26.12.2015, 23:22
  2. Ответов: 19
    Последнее: 30.09.2011, 03:08
  3. Ответов: 0
    Последнее: 15.08.2010, 14:38
  4. Ответов: 18
    Последнее: 27.08.2008, 20:27
  5. Ответов: 6
    Последнее: 20.11.2007, 11:29

Ваши права

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