Autor Tema: Manipular Byes y Nibles?... Imprimir cadena de Texto?  (Leído 4237 veces)

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

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Manipular Byes y Nibles?... Imprimir cadena de Texto?
« Respuesta #15 en: 16 de Octubre de 2007, 13:04:50 »
Heyy Diego!!
Quien tiene esas versiones del software???

Que es un ejmplo, hombreeeeee  ja, ja, ja  :D :D :D
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Manipular Byes y Nibles?... Imprimir cadena de Texto?
« Respuesta #16 en: 16 de Octubre de 2007, 13:09:22 »
Jesús, tengo que discrepar.

Las direcciones de memoria apuntan a bytes, no a nibbles. Cualquier cosa que hagas con nibbles requerirá de alguna argucia para diseccionar un byte.
Fíjate cómo compila tu ejemplo esta instrucción:
....................    uByte.usByte.usNible1 = 5;
0086:  MOVLW  05
0087:  MOVWF  11

El valor que hubiera en el nibble alto de uByte estaría machacado.

Pues o el compilador o trata mal las estructuras o no son soportadas para nibbles, ya que los dos nibbles los ha separado como dos bytes. El caso es que no da ningún error ni advierte de nada. Bueno, esto da idea de como funciona CCS.

La prueba definitiva es:

uByte.usByte.usNible1 = A;
uByte.usByte.usNible2 = B;
printf("Valor: %X", uByte.nByte);

Deberia devolver en el LCD: "AB"

Un saludo
« Última modificación: 16 de Octubre de 2007, 13:11:58 por jfh900 »
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Manipular Byes y Nibles?... Imprimir cadena de Texto?
« Respuesta #17 en: 16 de Octubre de 2007, 13:35:39 »
¿Puedes compilar ese ejemplo y pegar el resultado?, seguramente compilará bien, pero operando con los bytes para separar sus nibbles.
Mi experiencia con CCS es que es bastante "listo". Si antes no ha tenido cuidado de no machacar el byte, será porque ha visto que no había un valor establecido con anterioridad.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Manipular Byes y Nibles?... Imprimir cadena de Texto?
« Respuesta #18 en: 16 de Octubre de 2007, 13:38:50 »
Compila tambien con las instrucciones puestas al contrario, para ver si trata un solapamiento de medios bytes

uByte.usByte.usNible2 = B;
uByte.usByte.usNible1 = A;
printf("Valor: %X", uByte.nByte);
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania


 

anything