Manejo de Datos en Tiempo Real

Dudas sobre compiladores que funcionan bajo Windows (DJGPP, OpenWatcom, Visual C++, Borland C, etc ...).
Responder
Mensaje
Autor
Peregrino13
Mensajes: 1
Registrado: 16/07/2018 7:44 am

Manejo de Datos en Tiempo Real

#1 Mensaje por Peregrino13 » 16/07/2018 8:09 am

Bueno,estoy trabajando en un proyecto usando Qt creator (C++), la biblioteca XInput y un adaptador inalámbrico control de XBox 360 y el control obviamente. La idea es simple: El programa captura cada pulso del boton A calculando la respectiva velocidad con una distancia base como constante.
En este punto no presenta problema -el programa reconoce el pulso e imprime la velocidad- sin embargo, cuando ocupo la placa del control y con una protoboard envío pulsos constantes ( 20 ms) el programa captura en su mayoría ese valor; pero hay lapsos de descontrol de datos en donde entrega valores irreales y alejados de lo esperado.

He preguntado esto en varios lugares, y me han dicho que talvez sea que se requiera un SO de tiempo real o que sea debido a la capacidad del adaptador inalámbrico de enviar información.

Si alguien tiene alguna idea o noción, se agradecería. Gracias

mollok
Mensajes: 327
Registrado: 30/01/2018 9:47 am
Ubicación: Mallorca, España

Re: Manejo de Datos en Tiempo Real

#2 Mensaje por mollok » 16/07/2018 10:17 am

La verdad, ni me gustan mucho las protoboard, siempre que he usado una he tenido problemas con cables que no conectaban bien, pistas interiores quemadas (de segunda mano). Revisa bien que los cables, una vez conectados, no se deslicen en los agujeros (debe haber cierta resistencia), sino es fallo seguro. Lo mejor es soldar, puedes usar placas de prototipado.

Por lo que te han dicho del sistema operativo también puede pasar: Windows se encarga de muchas cosas, si los pulsos son muy rápidos es posible que pierda algunos mientras está ocupado con otras cosas.

Se me ocurre ahora mismo que es el control de hardware por lo que deberías usar, si no lo haces, las variables que trabajen adquiriendo esos pulsos como volatile, que es un modificador pensado para estos casos. Esto hace que el compilador no las optimice y por tanto siempre deben mirarse, de otra forma el compilador usa la copia que hay en la caché o en los registros.
while(is_alive(yourself)) {
    make_true(yourself, yourdreams);
}

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados