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 ?
Tags:
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
Poderia tentar com Threads.
http://labdegaragem.com/forum/topics/threads-usando-para-piscar-leds
Abs.
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;
.
.
.
}
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por