Перейти к содержанию
    

Выход из режима STOP STM32F030

Времени не было сразу задуматься, почему не получилось на частоте 15кГц (с максимальным делением)... а на выходных задумался... Причина простая - есть обработчик прерывания, который вызывается каждую 1мс, и видимо, при такой частоте, не успевает за 1мс выполнить все необходимые операции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А зачем вообще включать какие-то прерывания если проснулись и просто ждёте какого-то GPIO-сигнала?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Питание нарастает достаточно медленно, а GPIO имеет зону неопределённости между уровнями 0 и 1, поэтому у меня выбор: или ставить пороговый элемент (сформировать этот GPIO сигнал), либо применить обычную задержку. Пошёл по второму пути. Задержка (1с) основана на прерывании SysTick. Это прерывание единственное, и его я не отключаю. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, Ioann_II сказал:

Задержка (1с) основана на прерывании SysTick. Это прерывание единственное, и его я не отключаю.

Напишите для этого случая другую задержку на любом свободном таймере: запретите прерывание этого таймера в NVIC, но разрешите в самом таймере, отключите бит SLEEPDEEP, выполните _WFE() и ожидайте события от этого таймера в режиме Sleep.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...