Paso 8: Creando el software de adquisición de datos del pelado-hueso - Parte2: interrupción de datos y transmisión
Si el paso de previsios fue exitoso en el pasador de nDRDY de la ADS1299 debe haber un pulso con frecuencia de 1kHz - esta es la señal listo de datos adquiridos.
Por lo que debe utilizarse un GPIO con interrupción. Afortunadamente el SDK tiene un ejemplo de esto. El moddification sólo es en la función de controlador ISR.
El superior mencionó snipet de código muestra el pequeño cambio. En el controlador de interrupción comprobamos el estado de la GPIO. Si es baja, tenemos datos válidos, por lo que leemos. Los datos están en el siguiente orden: OP CH1 CH2 CH3... CH8. La OP contiene algunas opciones como la detección de plomo-off, mientras que el CHn es los datos en el canal n (24b de datos).
Para la transmisión, el periférico de la UART es usado desde el principio condiciones occures cuando el usuario comienza la adquisición del teléfono, utilizarán una interrupción en el extremo receptor. Mi configuración para la comunicación Bluetooth UART 230400 baudios/s de velocidad con el siguiente protocolo:
250 p p... p 255 es el protocolo de paciente, aquí empezamos a enviar información como nombre, fecha etc. de nacimiento.
251... 255 es el fin del Protocolo de datos del paciente.
- 252 p p... p 255 es el protocolo de inicio, con esto se inicia la adquisición de datos - aquí los bits p significa configuración de muestreo como un disparo con el intervalo definido, un tiro indefinidamente, frecuencia de muestreo etc..
- 253 p p... p 255 es el protocolo de parada
- 254 4D 4D... d 254 es el protocolo de datos de ECG
Hasta ahora se utiliza un paquete de longitud 16B: Inicio CH_NUM(2) CHi(3) CHj(3) CHk(3) CHl(3) parada, donde 2 bytes se utilizan para la identificación de datos, y datos 4 24b se enviaron al dispositivo android.
Después de algunas observaciones que la conclusión era reducir el tamaño del paquete, la pantalla de estos dispositivos androides es tan pequeña, que un cambio de 8b en datos es tolerable, por lo que con 16b de datos muestreados, el tamaño del paquete final es 11B, puesto que el número de Chanel también puede cambiar de tamaño. Este byte CH_NUM será útil cuando se usa a los 8 canales de ADC, pero sólo transmitir 4.