(RESOLVIDO)Incremento no arduino a partir de um número

Boa noite pessoal!

Já faz um tempo que não trabalho com a programação arduino e estou com uma pequena dúvida.

estou elaborando um contador de pulsos e preciso que ele incremente a partir de um numero maior que zero.

No meu caso criei uma variável:  int conta = 0;

declarando essa variável a contagem é feita normalmente:

if ( digitalRead(BI9) == HIGH )
{
    (delay(90));
    if ( digitalRead(BI9) == LOW )
       {
          conta++;
          Serial.println(conta);
          delay (1000);
           }
      }

Achei que mudando o valor da variável para o numero que preciso (no meu caso 35000), ou seja:

int conta = 35000; o programa começaria a incrementar a partir dai... mas não funcionou...

Poderiam me ajudar?

Obrigado!

Exibições: 1706

Responder esta

Respostas a este tópico

Obrigado RV! fiz as correções aqui e deu tudo certo!

Só pra mim entender. Pra que serve a linha while (1) {}; já que ela trava o arduino?

Muito obrigado pela atenção!

Boa tarde KJ,

A EEPROM do Arduíno tem vida util limitada em  +- 100.000 gravações.

Parece até muito, né. Nem seria preocupação. Certo?  

Mais ou menos.

Veja cada operação do Arduíno é executa em um clock de 16 Mhz,

ou seja em um segundo teoricamente o Arduíno executa 16.000.000 de instruções.

Se o programa de gravar na EEPROM tiver, digamos 10 instruções, e for um ciclo repetido,

em menos de um segundo executará 1.600.000 de instruções, o que causará a "oxidação" 

da EEPROM e a perda da mesma.

Claro que o resto do processador continuar funcionando, mas não  poderá mais guardar

dados na EEPROM.

Para evitar este problema, eu coloquei um bloqueio e permiti que a rotina de gravar na EEPROM

só rode por completo uma vez. Usei uma função que trava o arduino

while(1){}    Enquanto for 1 fique executando o while.

RV

PS

Escrevi um programa pra demostrar +- o tempo que o Arduíno leva para contar até 16.000.000.

Como o programa é em C, ao compilar ele aumenta o numero de instruções em assembly.

Usei o millis() para saber quantos milissegundos foram gastos para esta contagem.

Aqui o resultado foi. 41248 milis  (41,248 segundos). 

Isto informa que o programa tem  +- 41 instruções de assembly.

RV

Anexos

Muito obrigado RV!

Valeu pela informação!

De nada,

No natal vai atender minha solicitação?
RV

Sim! Claro!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço