Boa tarde pessoal como implemento o millis ao invés do delay?


void noventa_direita()
{
digitalWrite(esquerdaf,0);
digitalWrite(esquerdat,0);
digitalWrite( direitaf,1);
digitalWrite( direitat,0);
delay(250);
digitalWrite(esquerdaf,0);
digitalWrite(esquerdat,0);
digitalWrite( direitaf,0);
digitalWrite( direitat,0);
delay(50);
}
void tras()
{
digitalWrite(esquerdaf,0);
digitalWrite(esquerdat,1);
digitalWrite( direitaf,0);
digitalWrite( direitat,1);
delay(150);
digitalWrite(esquerdaf,0);
digitalWrite(esquerdat,0);
digitalWrite( direitaf,0);
digitalWrite( direitat,0);
delay(100);
}

void loop(){

while((valorld < valorcorte) && (valorle > valorcorte) && (valorcd < valorcorte) && (valorce < valorcorte)) //3
{
estado = 3;
calibrar_direita();
break;
}
while((valorld > valorcorte) && (valorle < valorcorte) && (valorcd < valorcorte) && (valorce < valorcorte)) //4
{
estado = 3;
calibrar_esquerda();
break;
}

Esse é só um exemplo do que preciso, como vou trocar o delay nesse caso ?

Exibições: 532

Responder esta

Respostas a este tópico

Aqui esta toda informação que precisa.

http://www.arduino.cc/en/Reference/Millis

Abs.

infelizmente para o que ele precisa, essa referencia do millis não ajuda em nada...

Também estou procurando aprender a usar o Timer0 dos pic, pra não usar delay... qualquer coisa que eu achar, eu posto aqui.

Oi Rodrigo, boa tarde.

Se precisar ajuda no timer0 do PIC, abra um tópico, e aí posso tentar auxiliar.

Rui

Oi Antonio, 

tenta com threads.

Rui

void setup()

{

// Timer Periodo: 9,984 ms
ASSR     = (0 EXCLK) | (0 AS2);
TCCR2A = (0 COM2A1) | (0 COM2A0) | (0 COM2B1) | (0 COM2B0) | (0 WGM21) | (0 WGM20);
TCCR2B = (0 WGM22) | (1 CS22) | (1 CS21) | (1 CS20);
TCNT2   = 0x64;
OCR2A  = 0x00;
OCR2B  = 0x00;

TIMSK2 = (0 OCIE2B) | (0 OCIE2A) | (1 TOIE2);

.

.

.

}

ISR(TIMER2_OVF_vect)

{

 TCCR2 = 0x64;

.

.

.

}

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço