¿Cómo saber si el ESP8266 se ha reiniciado manualmente?

1

Intento reformular completamente mi problema.

En el ESP8266, el pin RST siempre está ALTO (+ 3.3V), y debes ponerlo en 0-1V para restablecer el chip.

Conectaré dos botones en el pin de reinicio, "botón rojo" y "botón verde". Mi objetivo es saber qué botón se presionó para restablecer el ESP .

La idea general es colocar un circuito Resistor-Capacitor en el botón verde. Cuando se presiona el botón verde, mediré un voltaje bajo si t = RC es lo suficientemente alto. Si se presiona el botón rojo, mediré un alto voltaje.

El esquema con solo el botón verde es:

simular este circuito : esquema creado usando CircuitLab

Lo siento, no sé cómo dibujarlo, inserto una imagen de los voltajes cuando se pulsa verde y luego se suelta:

LuegonecesitoenchufarelbotónrojoparaquelaU(RC)semantengaaltacuandosepresione,peroU(reset_pin)siguesiendoun"rectángulo".

¿Esesteesquemaloquesedebehacer?

simular este circuito

No puedo probar el circuito en este momento, pero ¿está bien en teoría?

¿Y estoy en la dirección correcta, o me estoy perdiendo una solución trivial?

    
pregunta bixente57

2 respuestas

1

Respuesta encontrada. Iba en la dirección equivocada con el circuito RC.

Aquí está el esquema correcto para mi problema:

Con este esquema, necesito SIEMPRE configurar el GPIO4 en ALTO antes del inicio. Entonces, si GPIO4 es ALTO al inicio, es un despertar natural. Y si es BAJA, es un despertador activado por el usuario.

    
respondido por el bixente57
0

La forma típica de manejar esto en el código es haciendo que su función de bucle llegue después de una función de inicio adecuada. Pseudo Código:

Boot Init();
   While(1){
      Looped Init();
      Sleep();
      Awake();
      Loop to While();
   }

Mientras el reinicio sea un reinicio adecuado, el microprocesador debería comenzar desde el principio, no solo salir del modo de suspensión y continuar en el ciclo. Boot Init solo debe ejecutarse la primera vez que se enciende la MCU, a menos que se reinicie.

    
respondido por el Passerby

Lea otras preguntas en las etiquetas