Sleep()

Send the microcontroller to sleep mode for the amount of time (in miliseconds) specified as parameter. (There are 1000 milliseconds in a second.)

Sleep mode is good to save power and clock cycles and in most cases is better than using a delay.

A device may have multiple sleep modes, so this can be modified in the source code to gain greater optimization.

 

Syntax

sleep(ms)

 

Parameters

ms: the number of milliseconds to pause (unsigned long)

 

Returns

nothing

 

Example

int ledPin = RED_LED;                 // Red LED on LaunchPad

void setup()
{
  pinMode(ledPin, OUTPUT);      // sets the digital pin as output
}

void loop()
{
  digitalWrite(ledPin, HIGH);   // sets the LED on
  sleep(1000);                  // waits for a second
  digitalWrite(ledPin, LOW);    // sets the LED off
  sleep(1000);                  // waits for a second
}

 

Caveat

While it is easy to create a blinking LED with the sleep() function, and many sketches use short delays or sleeps for such tasks as switch debouncing, the use of sleep() in a sketch can also have drawbacks. No other reading of sensors, mathematical calculations, or pin manipulation can go on during the sleep function, so in effect, it brings most other activity to a halt. For alternative approaches to controlling timing see the millis() function and the sketch sited below. More knowledgeable programmers usually avoid the use of sleep() for timing of events longer than 10’s of milliseconds unless the Energia sketch is very simple.

Certain things do go on while the sleep() function is running, because the sleep function does not disable interrupts. Serial communication that appears at the RX pin is recorded, PWM (analogWrite) values and pin states are maintained, and interrupts will work as they should.

 

See also

 

Reference Home