Programación ADC

0

He escrito un código para ADC para el microcontrolador s12x. Mi duda es que la hoja de datos me dice que compruebe si el indicador de hardware está configurado para saber que la conversión está completa. Para saber esto, he usado infinito bucle while. La mayoría de las veces funciona, pero encontró una instancia al probar aleatoriamente que el código permanece en un bucle infinito en este bucle while. ¿Es una mala programación poner el bucle while en la programación incrustada? ¿Debo averiguar la razón por la que en un instante falló el bucle o puedo ignorarlo?

    
pregunta rajesh

2 respuestas

1

Seguramente no necesitas una respuesta al '¿Puedo ignorarlo?' pregunta?

Cuando su ADC falla por alguna razón, preferiría que su sistema se bloquee o que aparezca un mensaje que diga 'ADC falló otra vez en el momento = xx, params = yyy, config = zzzz'. Este último podría darle la oportunidad de descubrir qué está mal o, al menos, volver a intentar la operación.

En lugar de realizar un bucle para siempre, es un poco más higiénico hacer un bucle mientras espera_tiempo: less_than: some_limit. Luego, si el tiempo se agota, sabes que tienes la configuración de tu ADC incorrecta de alguna manera, y puedes volcar ordenadamente lo que esperabas que hiciera y recuperar.

    
respondido por el Neil_UK
0

Realmente depende de tu diseño general. Si todo el punto de este código es tomar esas medidas y procesarlo. Luego, si el adc no se convierte o falla en general, entonces el código ha fallado de todos modos, y si se cuelga en un bucle. Si las fallas se encuentran, es algo de lo que el software puede recuperarse al intentarlo de nuevo. Y el diseño del sistema puede tolerar una muestra perdida sin declarar una falla total, luego, ponga un tiempo de espera e intente nuevamente.

El código de suspensión en básicamente un bucle infinito con fork () es una práctica muy común en aplicaciones que se ejecutan en sistemas operativos. Puede ser así aquí.

Esta es la razón por la que tienes un temporizador de perro guardián, para recuperarte de los bloqueos. Tal vez usted no quiera colgar por diseño, pero tal vez lo haga. el primer código PIC de lirc se basó en el wdt para restablecerlo por diseño.

Si no hay una ruta de recuperación, el tiempo de espera se convierte en una nota de suicidio. En lugar de simplemente morir, puedes dejar una nota de suicidio y luego dispararte en la cabeza. Resultado final muerto de todos modos. ¿Vale la pena el código extra y el desarrollo de la nota de suicidio? Cada línea de código agrega riesgo a su diseño.

así que la respuesta es "depende" ...

    
respondido por el old_timer

Lea otras preguntas en las etiquetas