Un assert es una comprobación que se realiza en el código para verificar que todo es correcto, si la comprobación no es correcta el programa termina. En el caso de Arduino se llama a la función abort() que deshabilita todas las interrupciones y entra en un bucle infinito. Es una medida de precaución para evitar continuar ejecutando un programa cuando algo va mal y no tiene solución o no se sabe que es lo que falla.
Para usar asserts es necesario incluir la librería assert.h. Un assert se escribe usando la función assert pasando como parámetro una comparación lógica que será verdadera o falsa. Si es verdadera el programa continuará, si es falsa se detendrá.
Veamos un ejemplo:
#include <assert.h>
int a = 5;
int b = 1;
int c;
void setup() {
Serial.begin(9600);
while (!Serial) {
; // esperamos a que el puerto este inicializado
}
}
void loop() {
a--;
divide();
delay(1000);
}
void divide(){
assert(a != 0);
c = b/a;
Serial.print(b);
Serial.print("/");
Serial.print(a);
Serial.print(" = ");
Serial.println(c);
}
Este texto mejorado y ampliado forma parte de mi libro sobre como mejorar tus programas en Arduino. Puedes echarle un vistazo aquí.
Puedes echar un vistazo a la versión en vídeo de este entrada: