Estoy trabajando en un proyecto de sensores que utiliza TelosB basado en CC2420 y MSP430F1611 ejecutando TinyOS.
El objetivo del proyecto es medir la distancia entre dos dispositivos. Estaba pensando en medir el tiempo que necesita una señal para ir de un dispositivo a otro y regresar. Para tener algunos valores precisos, necesito encontrar el momento exacto en que comienza la transmisión y comienza la recuperación. Creo que esto se puede hacer activando una interrupción en el pin SFD (que cambia su estado al inicio de la transmisión, al final de la transmisión, al inicio de la recepción y al final de la recepción).
Utilizo el componente componente (HplCC2420InterruptsC) con la interfaz CaptureSFD que devuelve el timp del cambio de SFD pero la precisión es solo en el temporizador de 32Khz:
async event void CaptureSFD.captured(uint16_t time)
este es el evento activado.
Necesito microsegundos, por eso busco una manera de activar una interrupción, así puedo guardar un valor de tiempo en microsegundos (el evento de la interfaz anterior se activa de forma asíncrona por lo que la diferencia de tiempo es demasiado grande).
Entonces, ¿cómo puedo activar en este sistema (TINYOS) una interrupción sincrónica cada vez que el pin SFD cambia el valor (1 o 0)?