Autor Tema: jugando con define#  (Leído 1712 veces)

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

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
jugando con define#
« en: 15 de Enero de 2014, 19:57:26 »
hola.estoy haciendo unas pruebas con las definiciones y hay algo que no entiendo.

si pongo:  #define      TABLA_CRCs   0x5000   

y luego pongo:  movlw          TABLA_CRCs    el valor que carga en W es 0x00   pero lo que yo quiero es obtener el byte alto. 0x50

hay alguna forma de hacerlo?
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado sander

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 624
Re: jugando con define#
« Respuesta #1 en: 15 de Enero de 2014, 20:06:55 »
Hola,

para obtener el byte alto puede usar la directiva HIGH, es decir, quedaria

movlw              HIGH  TABLA_CRCs,


Saludos
La electrónica es el arte de manipular señales eléctricas que transportan información
Jan Davidse

Visita mi blog
Visita mi canal de youtube

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: jugando con define#
« Respuesta #2 en: 15 de Enero de 2014, 20:12:23 »
muchisimas gracias.me has salvado de volverme loco. :D
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: jugando con define#
« Respuesta #3 en: 06 de Febrero de 2014, 19:27:32 »
hola sander.he estado haciendo pruebas con la directiva HIGH.y se me ha ocurrido hacer esto:

#define      MENSG1      0X2000
         #define      MENSG2       MENSG1 + .36
         #define      MENSG3       MENSG2 + .34
         #define      MENSG4       MENSG3 + .34
         #define      MENSG5       MENSG4 + .34
         #define      MENSG6       MENSG5 + .34

resulta que si dispongo:

org       MENSG1

org       MENSG2

org       MENSG3...   etc

todo el codigo debajo de estas etiquetas se coloca correctamente.

pero si quiero usar la directiva como:

movlw    HIGH MENSG1   se carga en W el valor 0x20.      pero si pongo   movlw    HIGH MENSG2  da 0x44. cuando deberia de dar 0x20
Montando mi primera impresora 3D (Raprep Prusa i3)


 

anything