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" ...