Subo a mesma versão de sketch para o mesmo board feitas em PC´s diferentes no W10 da kernel pânic no W7 funciona

Salve galera.
Me deparei com um problemão.
1º  Compilei e fiz o upload de meu Sketch em dois PC´s diferentes sendo um W10 64 e outro W7 64.

2º  Utilizei o mesmo Board e o mesmo sketch ESP32 em ambos.

Quando compilo no W7 tudo no board ESP32 funciona perfeitamente mas, quando compilo no W10, o mesmo board entra em kernel pânic apontando para um simples delay com millis como é visto abaixo:

void delayMillisC1(int tmillisC1)
{
              int agoraC1 ;
              agoraC1 = millis();
               while (millis() < (agoraC1 + tmillisC1))
                     {
                                     /* não faz nada, so gera o tempo */
                     }
}

Todas as bibliotecas são idênticas.
O que pode estar ocorrendo?
Seria Java?

 

Exibições: 69

Responder esta

Respostas a este tópico

Salve pessoal.
Depois de bater cabeça, descobri "parte" do problema.
A biblioteca de boards ESP32 não pode ser atualizada de 1.0.6 para 2.1x e por isso buga meu sketch.
Aguem sabe sobre as mudanças que ocorreram das versões 1x para 2x?

Olá.

  Não passei por isso, não tenho uma resposta, mas tentaria:

  mills() no Arduino padrão não é int, é muito mais que isso, precisa de mais bits para fazer caber o conteudo de mills().

  Ref: https://www.arduino.cc/reference/pt/language/functions/time/millis/

  

  Tente unsigned long.

  Só a falta do unsigned já daria problema, pq o int tem sinal. Se ele vai alem do limite (overflow) ele se torna negativo, que bagunça todo seu "<".

  No ESP32 o int é muito maior, deveria suportar, mas como não se tem resposta melhor por enquanto tente isso.

Valeu.
Eu estou mudando essa função de delay com millis para a biblioteca Neotimer.
Muito prática para fazer trabalhos com tempo sem usar o delay().

Abs

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço