Cosas que hacer con ISR

1

Tengo un ISR que incrementa un contador cada 5 ms si se presiona el interruptor.

Si el contador se convierte en 200, entonces reinicie. Planeo agregar más funciones para ser llamadas desde el valor del contador.

Después de algunos encuentros con ISRs, recibí el consejo de expertos de este sitio para mantener el ISR corto.

Entonces, ¿cómo debo mantener el ISR correctamente o cerca de la perfección?

¿Se trata de mantener banderas?

Confío en llamar a ISR porque las rutinas largas son una mala arquitectura. Pero entonces, ¿cómo puedo llamar rutinas largas desde el valor de los indicadores en ISR si se guardan en otros archivos de origen que no sean main.c ?

    
pregunta Rookie91

1 respuesta

3

El acceso a las variables entre los archivos de origen se realiza mediante la palabra clave extern , por ejemplo, en el archivo de cabecera que declara una variable. Si está todo en un archivo, puede usar una variable global.

Cuando quieres que un ISR pueda cambiar la variable (como una bandera) y que otra rutina reconozca el cambio (quizás al encuestar las banderas periódicamente entre otras cosas), es mejor usar el volátil palabra clave, que evita que la variable se optimice fuera del código (ya que de lo contrario el compilador no ve cómo podría cambiar).

Ver: enlace para obtener más información sobre extern

Y: enlace para obtener más información sobre volatile

    
respondido por el Spehro Pefhany

Lea otras preguntas en las etiquetas