Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Cortex m3: как узнать от чего проснулся?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
kostyan
В проектируемом девайсе предусмотрен выход из сна как по кнопке, так и по событию от встроенных часов (или часового таймера). Хотелось бы знать когда я проснулся от кнопки.

Господа, подскажите кто подробно работал с Backup Mode на Cortex M3 (или на аналогичном слип режиме для SAM7) по следующей ситуации.

В документации написанно, что вроде как юзер может понять от какого события проснулся проц:

"If an enabled WKUP pin is asserted for a time longer than the debouncing period, a wake up of
the core power supply is started and the signals, WKUP0 to WKUP15 as shown in Figure 19-7,
are latched in the Supply Controller Status Register (SUPC_SR). This allows the user to identify
the source of the wake up, however, if a new wake up condition occurs, the primary information
is lost. No new wake up can be detected since the primary wake up condition has disappeared."

Я "закодировался" на пробуждение от WKUP5. Просыпаться то я просыпаюсь, но сколько бы не читал регистр SUPC_SR, он у меня стабильно 0x00000080. То есть ожидаемого мною WKUPIS5 бита (0x01<<21) так я и не поймал.

Можно конечно в итоге анализировать часы, и определять от них ли было просыпание или от кнопки. Но было бы айс, если все же заработает "документированный" способ.

igorsk
В сабже надо было писать AT91, а не Cortex-M3. На уровне ядра нет стандартного регистра с идентификатором события.
У меня есть подозрение, что вы читаете SUPC_WUIR, там как раз пятый бит это WKUPEN5.

Извиняюсь, фигню спорол-с, WKUPEN5 это 0x20 а не 0x80...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.