.
Bueno ya averigüé el problema, y no es de las rutinas que hay por ahí para generar el array, sino que el programa que yo estoy usando trata los arrays de esa manera, cada byte lo saca invertido, el problema es que no puedo cambiar la rutina que procesa ese array porque actua de buffer y le llegan muchos otros datos en tiempo real.
Lo que si que puedo hacer es antes de sacar este array en concreto, meter una función que lo lea e invierta cada byte, en esto si que estoy oxidado, a ver si me echais un cable.
Por ejemplo, en el array si tengo 0xA0 que en binario sería 10100000, yo lo tengo que invertir para que ponga 00000101, que en hexadecimal es 0x05, ya lo he probado a mano y funciona. Ahora quisiera meter una función en C que me lea esa matriz e invierta todos los bytes antes de sacar la imagen, para que salga bien.
La pregunta es ¿ con que instrucción de C puedo invertir un byte ?, no se si será el termino adecuado, o es el complementario o algo así, por algún sitio he oido campanas pero no concreto, o es alguna instrucción para desplazar el byte (me suena lo de swap o swaping, bitwise shift operators >>).