Un "error" es una pieza de circuito o software que no funciona como pretendía el autor o el diseñador. Generalmente se refiere a la causa de que algo salga mal, pero no todos los errores son malos. A menudo, los efectos secundarios inesperados, que son literalmente según esa definición, "errores", se denominan "características no documentadas".
Un error en el hardware puede tomar muchas formas, desde errores durante la fabricación (pistas puenteadas, por ejemplo), componentes seleccionados incorrectamente (valores incorrectos, tolerancias incorrectas), etc., o desde el fabricante de un dispositivo que comete errores (usted debería leer algunas de las hojas de datos de "erratas de silicio" de algunos de los fabricantes de chips).
Un error en el software generalmente depende del programador, ya sea que no tenga todos los conocimientos necesarios para crear el programa de manera confiable (no se haya capacitado adecuadamente, no se proporcionaron todos los detalles, etc.) o se realizó un mantenimiento sucesivo por parte de múltiples partes, cada una de las cuales no comprende completamente. los efectos que sus cambios tienen en el sistema en su conjunto.
Está bastante garantizado que cualquier programa más complejo que una simple luz parpadeante (especialmente cualquier cosa que tenga alguna forma de interacción humana) tendrá errores en alguna forma. Algunos son tan pequeños que no se notan, pero otros son claramente obvios.
No hay ningún sistema informático en el mundo que esté libre de errores, a menos que cuentes los que nunca se activan.
Los errores más comunes que encuentro en el reino de Arduino se deben a que el programador no entiende el lenguaje de programación. Algunos ejemplos clásicos:
- Almacenar un valor > 32767 en un entero con signo (16 bits).
- Arreglos desbordados (suponiendo erróneamente que char [4] da los segmentos 0-4).
- Usar = (asignación) en lugar de == (igualdad) en las comparaciones.
- Error al terminar las cadenas correctamente (terminación nula).