Encontrei um metodo de executar ações sincronizadas no tempo, sem pausa e facil de expandir, replicar
#define NUMBER_OF_ACTIONS 2
typedef struct{
unsigned long previousTrigger;
unsigned int interval;
void (*function)();
}ProtoThread;ProtoThread protoThreads[NUMBER_OF_ACTIONS] = {
{0,600,action1}, //triggers every 600 millisecond -a cada 600ms
{1000,1000,action2} //predelay 1000 milliseconds, then from then on always trigger every 1000 millisecond - REPETE CADA 1s
};// funcao comum do ARDUINO
void loop(){for (byte i=0; i<NUMBER_OF_ACTIONS; i++) {
if (millis() - protoThreads_.previousTrigger > protoThreads*.interval) {_
_ protoThreads.previousTrigger = millis();
protoThreads.function();
}
}
}
void action1(){
//executo unica vez após energizar coma traso de 600ms*
}
void action2(){
//executo a cada 1 segundo completado }
* [/quote]
Um erro o forum, nao permite mostrar o codigo corretamente adicione a funcao loop um campo do array
referenciando a variavel i, nas variaveis protoThreads.previousTrigger e protoThreads.interval*
void loop(){
for (byte i=0; i<NUMBER_OF_ACTIONS; i++) {
* if (millis() - protoThreadsAQUI.previousTrigger > protoThreadsAQUI.interval) {
protoThreadsAQUI.previousTrigger = millis();
protoThreadsAQUI.function();
}}}*
Agora estou pensado como adaptar, um enable_