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?
Tags:
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
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por