Quality RTOS & Embedded Software

 Real time embedded FreeRTOS RSS feed 
Real time embedded FreeRTOS mailing list 
Quick Start Supported MCUs PDF Books Trace Tools Ecosystem TCP & FAT Training




Loading

How to enter power save?

Posted by Nobody/Anonymous on March 8, 2006
Hi,

I would like to enter power save mode after e.g 5 second, when nothing has happend.

How to implement this in smart way?

Nothing has happend does not mean that the system has been in the idle task all the time, only that no key has been pressed, no data arived thru USB and serial port.

regards, Frank

RE: How to enter power save?

Posted by Nobody/Anonymous on March 8, 2006
You can place the system into sleep mode whenever the idle task runs. This way you do not have to keep a timer to say when the last event occurs. You just have to ensure that the sleep mode used will wake the task when an interrupt occurs (USB, Keyboard, timer interrupt, etc).

Set configUSE_IDLE_HOOK to 1 in FreeRTOSConfig.h, then write the idle hook as:

void vApplicationIdleHook( void )
{
// Set sleep mode here.
}

RE: How to enter power save?

Posted by Nobody/Anonymous on March 9, 2006
Well, I want to be able to control the time elapsed before entering sleep mode.

So how do I ensure that the idle_hook is not running?

regards, Frank

RE: How to enter power save?

Posted by Nobody/Anonymous on March 9, 2006
Could you use a tick hook? A function that runs each time the context switch occurs. From there you could reset a counter each time a function that is not the idle task runs. Then in the idle task you could check this counter and when it reaches your timeout, it can call sleep function.

RE: How to enter power save?

Posted by Nobody/Anonymous on March 10, 2006
Yes, but not all task that are made runing by a context switch, means that anything has happend.

If I could somehow reset the counter only when a context switch to a task of certain priority is made, I think it could work.

But is that possible?

regards, Frank.

RE: How to enter power save?

Posted by Nobody/Anonymous on March 10, 2006
You can do this from a tick hook. The priority of the task that will run at the end of the tick is given by pxCurrentTCB->uxPriority. You can use this to do what you want (I think?).


[ Back to the top ]    [ About FreeRTOS ]    [ Sitemap ]    [ ]




Copyright (C) 2004-2010 Richard Barry. Copyright (C) 2010-2016 Real Time Engineers Ltd.
Any and all data, files, source code, html content and documentation included in the FreeRTOSTM distribution or available on this site are the exclusive property of Real Time Engineers Ltd.. See the files license.txt (included in the distribution) and this copyright notice for more information. FreeRTOSTM and FreeRTOS.orgTM are trade marks of Real Time Engineers Ltd.

Latest News:

FreeRTOS V9.0.0 is now available for download.


Free TCP/IP and file system demos for the RTOS


Sponsored Links

⇓ Now With No Code Size Limit! ⇓
⇑ Free Download Without Registering ⇑


FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

Renesas Electronics Gold Alliance RTOS Partner.jpg

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers

Atmel RTOS partner supporting ARM Cortex-M3 and AVR32 microcontrollers

STMicro RTOS partner supporting ARM7, ARM Cortex-M3, ARM Cortex-M4 and ARM Cortex-M0

Xilinx Microblaze and Zynq partner

Silicon Labs low power RTOS partner

Altera RTOS partner for Nios II and Cortex-A9 SoC

Freescale Alliance RTOS Member supporting ARM and ColdFire microcontrollers

Infineon ARM Cortex-M microcontrollers

Texas Instruments MCU Developer Network RTOS partner for ARM and MSP430 microcontrollers

Cypress RTOS partner supporting ARM Cortex-M3

Fujitsu RTOS partner supporting ARM Cortex-M3 and FM3

Microsemi (previously Actel) RTOS partner supporting ARM Cortex-M3

Atollic Partner

IAR Partner

Keil ARM Partner

Embedded Artists