Cuando los datos recibidos en mi mensaje CAN superan 327.67, se voltean a -327.68. ¿Por qué está ocurriendo esto?
La razón por la que se desborda así es porque es un número con signo de 16 bits. Todos los canales en el Dash tienen signo, por lo que para que funcione correctamente debes forzarlo a ser un número de 32 bits. La forma de hacerlo dependerá de dónde esté posicionado el canal en el mensaje CAN. He adjuntado una imagen con algunos ejemplos de cómo configurar el Desplazamiento (Offset), Longitud (Length), Máscara (Mask) y Divisor dependiendo de dónde esté posicionado el canal 'Fuel Used'.
Una cosa a tener en cuenta, si el canal está posicionado en el byte 0, tendrás que usar matemáticas avanzadas para obtener el divisor correcto. En este caso necesitas un divisor de 65536, pero el parámetro divisor en la plantilla CAN tiene un valor máximo de 32767.
La razón del divisor es que la máscara funciona como un 'AND' en el canal, no como un desplazamiento de bits.
La casilla de verificación de con/sin signo aún debe seleccionarse correctamente dependiendo de si el canal recibido tiene signo o no.
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.