Слияние кода завершено, страница обновится автоматически
/*!
* \file lpm-board.c
*
* \brief Target board low power modes management
*
* \copyright Revised BSD License, see section \ref LICENSE.
*
* \code
* ______ _
* / _____) _ | |
* ( (____ _____ ____ _| |_ _____ ____| |__
* \____ \| ___ | (_ _) ___ |/ ___) _ \
* _____) ) ____| | | || |_| ____( (___| | | |
* (______/|_____)_|_|_| \__)_____)\____)_| |_|
* (C)2013-2017 Semtech - STMicroelectronics
*
* \endcode
*
* \author Miguel Luis ( Semtech )
*
* \author Gregory Cristian ( Semtech )
*
* \author MCD Application Team (C)( STMicroelectronics International )
*/
#include <stdint.h>
#include "stm32l1xx.h"
#include "utilities.h"
#include "lpm-board.h"
static uint32_t StopModeDisable = 0;
static uint32_t OffModeDisable = 0;
void LpmSetOffMode( LpmId_t id, LpmSetMode_t mode )
{
CRITICAL_SECTION_BEGIN( );
switch( mode )
{
case LPM_DISABLE:
{
OffModeDisable |= ( uint32_t )id;
break;
}
case LPM_ENABLE:
{
OffModeDisable &= ~( uint32_t )id;
break;
}
default:
{
break;
}
}
CRITICAL_SECTION_END( );
return;
}
void LpmSetStopMode( LpmId_t id, LpmSetMode_t mode )
{
CRITICAL_SECTION_BEGIN( );
switch( mode )
{
case LPM_DISABLE:
{
StopModeDisable |= ( uint32_t )id;
break;
}
case LPM_ENABLE:
{
StopModeDisable &= ~( uint32_t )id;
break;
}
default:
{
break;
}
}
CRITICAL_SECTION_END( );
return;
}
void LpmEnterLowPower( void )
{
if( StopModeDisable != 0 )
{
/*!
* SLEEP mode is required
*/
LpmEnterSleepMode( );
LpmExitSleepMode( );
}
else
{
if( OffModeDisable != 0 )
{
/*!
* STOP mode is required
*/
LpmEnterStopMode( );
LpmExitStopMode( );
}
else
{
/*!
* OFF mode is required
*/
LpmEnterOffMode( );
LpmExitOffMode( );
}
}
return;
}
LpmGetMode_t LpmGetMode(void)
{
LpmGetMode_t mode;
CRITICAL_SECTION_BEGIN( );
if( StopModeDisable != 0 )
{
mode = LPM_SLEEP_MODE;
}
else
{
if( OffModeDisable != 0 )
{
mode = LPM_STOP_MODE;
}
else
{
mode = LPM_OFF_MODE;
}
}
CRITICAL_SECTION_END( );
return mode;
}
__weak void LpmEnterSleepMode( void )
{
}
__weak void LpmExitSleepMode( void )
{
}
__weak void LpmEnterStopMode( void )
{
}
__weak void LpmExitStopMode( void )
{
}
__weak void LpmEnterOffMode( void )
{
}
__weak void LpmExitOffMode( void )
{
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )