Considero que por ej. al decir "un llamado a una función limpieza" has generalizado. En mi opinión muchos problemas se resuelven no con llamadas a funciones que inicializan variables sino a una buena diagramación del software , de las subrutinas y de como va el flujo del programa a medida que algunas condiciones se cumplen o no.
Primero que nada una funcion no tiene por que inicializar ningun tipo de variables, segundo por funcion se entiende una rutina de codigo que realiza una funcion especifica. si a vos te gusta tirar todo en un solo main, me parece fantastico pero es una practica que desaconsejo, si bien muchos trabajan en assembler esto no quiere decir que estes restringido al modelo to-down sino creo que las herramientas de hoy en dia permiten incluso hacer un assembler modular, mucho mas limpio y facil de manejar, quiza mas dificil de leer como pasa con la programacion modular, pero ya basta de este tema que da para mucho...
Si te fijas acabas de citar MI post y no el de AABHGA que es quien usa esa función. Yo estaba diciendo casualmente que usar una función o "procedimiento" (al cabo que un void fcn(void) es un procedimiento) para poner todo a 0 no es la forma de querer resetear un pic.
Es común en los "chicos C" confundir llamar a todo "una función", pero tampoco lo veo tan grave, es decir, uno entendió lo que nuestro amigo quiso decir. El se refería a un procedimiento. No hace falta ser tan exquisito, hay gente que recién comienza y tal vez una simple explicación les aclara tu punto y te ganas un amigo.
En cuanto a MI opinión, usar un
void inicializarvariables (void) no solo que está perfecto, sino que es hasta aconsejable. Siempre tengo mi código de inicialización en un procedimiento separado. Al principio del main llamo a funciones que me configuran los periféricos e inicializan las variables. No me gusta usar la inicialización de las variables en código C (en la declaración), porque hay que mezclar secciones UDATA con IDATA y se presta a confusión en programas largos (aclaro que uso C18).
Ahora, ¿cómo inicializas tu las variables si no usas ni una 'función' ni pones todo en el 'main ?
Cuando uno quiere resetear un dispositivo, cualquiera no importa, hay una etapa que uno no controla el programa esta ciego ya es imposible intervenir o tomar desiciones, por eso el programador tiene que evitar esto a toda costa, por que uno ya no puede volver atraz y por que no existe ninguna manera de saber que va a pasar uno se queda esperando que retomar el control para dar servicio y eso es una falla tremenda, imaginemos que la condicion X se sucita en una maquina, si la contramedida es reiniciar perdemos conocimiento de lo que X provaca al resto de la maquina, por eso las contramedidas tienen que ser activas, la maquina se tiene que poder defender pero estando viva no muerta, si pensamos que la somucion de algo es perder el control absoluto, estamos cortemos la conversacion y vamos a jugar a las barbis...
maggi, me parece que estás siendo extremista. La aplicación de
AABHGA es bastante simple y no requiere de tanto rigor.
Si bien la práctica de AABHGA no es la adecuada, ni la más aconsejable por ahora, como el bien dijo, le ayuda a zafar y es más que entendible. Yo no hacia las cosas que hago ahora, ni siquiera hace 1 año atrás!. Uno va evolucionando, aprendiendo, mejorando, optimizando. El aprendizaje es un proceso gradual.
Si su aplicación lo permite y no le trae problemas, apruebo su decisión. Hacer otra cosa, le traería semanas de trastornos y búsqueda que tal vez ahora no esté en condiciones de asimilar porque recién comienza. A todos nos pasó alguna vez. Mi primer firmware no fue el automatismo de un sistema de control a lazo cerrado... fue un simple display de dígitos.
Cuando haga alguna cosa más complicada en un proceso que no deba pararse nunca, ahí de seguro no usará ésta metodología y si la usa tendrá graves problemas. Pero tiempo al tiempo.
No me parece que acá se haya dicho en algún momento que "en caso de no saber que hacer -> RESETEE", simplemente AABHGA fue muy sincero en reconocer sus limitaciones y las expuso frente a la solución que se le ocurrió.
Ahora bien, si tienes inquietudes en mostrarnos algunas cosas de tus opiniones sobre desarrollos de proyectos, te invito que comiences un tema nuevo exponiendo tus ideas pero no me parece que haya que seguir en este hilo donde hablamos de AABHGA y SU problema.
Estas siendo extremista maggi, como dije antes, es para zafar de algunas y para que tomara las nuevas configuraciones que el usuario pone y acortar el código a su vez, en el proyecto que realizé, me toco que empezar a depurar en demasía el programa, xque me pasé de la capacidad del 16F84 antes de terminarlo.
Precisamente, y como dije para tu aplicación por ahora es aceptable y entendible. A no darle mas vueltas al asunto