Autor Tema: Imagenes en HEX para POV display  (Leído 2191 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Edson G.

  • PIC10
  • *
  • Mensajes: 5
Imagenes en HEX para POV display
« en: 29 de Noviembre de 2011, 04:52:22 »
Buenas, tengo un problemilla con mi proyecto de optoelectronica. He ensamblado un POV LED DISPLAY monocromático de 200 columnas en forma cilindrica con 32 LEDS (Filas) de alto. Sin embargo la imagen en hexadecimal fue construida (por otros compañeros) de tal forma que sale invertida (el bit MSB es el LSB), entonces me di cuenta que la labor de componer esa imagen es muy tediosa y me gustaria poder cargar mas inagenes al PIC (18F4685)  en compilador CCS 4 8)

Existe alguna forma de construir imágenes de este tamaño en hexadecimal? o en caso tal para convertirlas? hay softwares por ahy, pero sacan imagenes de .bmp a rgb y no me sirve en mi caso; otros no se adaptan al tamaño.

De antemano gracias por la ayuda :)

PD: ¿Hay alguna forma para invertir los bytes en CCS (Literalmente voltearlos)?

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Imagenes en HEX para POV display
« Respuesta #1 en: 29 de Noviembre de 2011, 22:22:56 »
Creo que swapf?

Saludos
El papel lo aguanta todo

Desconectado Edson G.

  • PIC10
  • *
  • Mensajes: 5
Re: Imagenes en HEX para POV display
« Respuesta #2 en: 30 de Noviembre de 2011, 02:54:44 »
En realidad lo que necesito es invertit el orden de los bits. Por ejemplo: si tengo 0b10001011 (0x8B) ------> 0b11010001 (0xD1). La funcion swap cambia de posicion los nibles. Lo necesito para invertir una imagen que esta de cabeza  : :(

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Imagenes en HEX para POV display
« Respuesta #3 en: 30 de Noviembre de 2011, 03:17:06 »
Creo que no hay nada que lo haga directamente, pero siempre puedes hacer algo así:

Código: C
  1. Dato = bit_test(Dato,0)<<7 | bit_test(Dato,1)<<6 | bit_test(Dato,2)<<5 | bit_test(Dato,3)<<4 | bit_test(Dato,4)<<3 | bit_test(Dato,5)<<2 | bit_test(Dato,6)<<1 | bit_test(Dato,7);


 

anything