Manejo de errores AVR: I2C, SPI, etc.

0

¿Cómo se manejaría un error en el manejo de errores en interfaces AVR que no proporcionan específicamente un esquema de reconocimiento?

Por ejemplo, tengo un sensor de temperatura I2C que sondea cada 1 hora. Así que cada hora mi AVR envía una condición de inicio TWI al sensor y obtiene la temperatura al final de este. Ahora Por alguna razón, el sensor no responde. Tal vez ha sido sacado, quemado, etc. Entonces, ¿cómo puedo verificar esto en mi código e informar al usuario?

Ahora mismo estoy usando el método de sondeo. Bucle infinito hasta que TWINT se establece en el registro TWCR

while ((TWCR & (1<<TWINT)) == 0){};
return TWDR;
    
pregunta Ankit

1 respuesta

1

El módulo I2C proporciona una manera de identificar errores, una vez que envíe, digamos una condición de INICIO o lo que sea que tenga para verificar el registro TWSR (registro de estado TWI) y debe coincidir con el estado que está esperando (por ejemplo, Aknowledge from slave ). Hay un diagrama de flujo para cada modo de trabajo que muestra los diferentes valores de estado.

    
respondido por el Marm

Lea otras preguntas en las etiquetas