Modifique app_conf.h para
abrir la macro de soporte de bajo consumo
/**
* When set to 1, the low power mode is enable
* When set to 0, the device stays in RUN mode
*/
#define CFG_LPM_SUPPORTED 1
Cerrar macro de control de impresión
/**
* keep debugger enabled while in any low power mode when set to 1
* should be set to 0 in production
*/
#define CFG_DEBUGGER_SUPPORTED 0//1
/**
* When set to 1, the traces are enabled in the BLE services
*/
#define CFG_DEBUG_BLE_TRACE 0//1
/**
* Enable or Disable traces in application
*/
#define CFG_DEBUG_APP_TRACE 0//1
Modifique FreeRTOSConfig.h configUSE_TICKLESS_IDLE para que se
defina como 1 para usar el vPortSuppressTicksAndSleep predeterminado para
definir 2 para usar el vPortSuppressTicksAndSleep personalizado
#define configUSE_TICKLESS_IDLE 2
Seleccione el modo de bajo consumo de energía como modo de parada
static void APPE_SysUserEvtRx( void * pPayload )
{
UNUSED(pPayload);
/* Traces channel initialization */
APPD_EnableCPU2( );
APP_BLE_Init( );
// UTIL_LPM_SetOffMode(1U << CFG_LPM_APP, UTIL_LPM_ENABLE);
UTIL_LPM_SetStopMode(1U << CFG_LPM_APP, UTIL_LPM_ENABLE);
return;
}
El procesamiento de entrada y salida de periféricos de bajo consumo se ubica en las dos funciones de la siguiente figura
ConfigEXPECTED_IDLE_TIME_BEFORE_SLEEP en FreeRTOS.h
indica el número de tics inactivos antes de que el sistema entre en un bajo consumo de energía. El
valor predeterminado es 2
#ifndef configEXPECTED_IDLE_TIME_BEFORE_SLEEP
#define configEXPECTED_IDLE_TIME_BEFORE_SLEEP 2
#endif