sexta-feira, 5 de fevereiro de 2010

delay(ms)


Suspende a execução do programa pelo tempo (em milisegundos) especificado como parâmetro. (Em um segundo há 1.000 milisegundos.)

Parâmetros

ms (unsigned long): o número de milisegundos em que o programa ficará com a execução em suspenso.

Retorno

nenhum

Exemplo

int ledPin = 13;                 // LED conectado ao pino digital 13

void setup()
{
  pinMode(ledPin, OUTPUT);      // marca o pino digital como saída
}

void loop()
{
  digitalWrite(ledPin, HIGH);   // acende o LED
  delay(1000);                  // espera por um segundo
  digitalWrite(ledPin, LOW);    // apaga o LED
  delay(1000);                  // espera por um segundo
}

Cuidado

Embora seja fácil criar um LED piscando com a função delay(), e muitos programas usam intervalos curtos para tarefas como a de filtrar ruídos, o uso do delay() em um programa tem aspectos negativos importantes. Nenhuma leitura de sensores, cálculo matemático, ou manipulação de pinos pode seguir durante a execução desta função, portanto muitas outras funções ficam em espera. Para controles de tempo alternativos veja a função millis() e e seu programa de exemplo. Programadores com mais conhecimento normalmente evitam o uso de delay() para cronometrar eventos mais logos do que 10 milisegundos, a não ser que o programa seja muito simples.
Algumas coisas de fato continuam acontecendo enquanto a função delay() está controlando o chip ATmega porque as interrupções não são desabilitadas. A comunicação que aparece no pino RX continua sendo gravada. os pinos e as leituras de PWM (analogWrite) são mantidos, e as interrupções continuam funcionando.

0 comentários:

Postar um comentário