Autor Tema: duda sublw  (Leído 8536 veces)

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

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
duda sublw
« en: 22 de Marzo de 2008, 04:41:22 »


   movfw   POS_JOY4
   sublw   0x50

si pos_joy4 vale AF, con el cumando sublw 0x50 no deberia darnos 5F¿¿¿¿ que me sale A1 y no lo comprendo... alguna logica? No salta entre medio la interrupción ni nada.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: duda sublw
« Respuesta #1 en: 22 de Marzo de 2008, 04:51:20 »
Yo lo veo bien, 0x50 - 0xAF = 0xA1

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Re: duda sublw
« Respuesta #2 en: 22 de Marzo de 2008, 04:52:38 »
.. ok estoy haciendo la cuenta al reves... Por cierto manolo tu tambien estás apurado de tiempo igual que yo hoy? jajaja estas que horas son

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: duda sublw
« Respuesta #3 en: 22 de Marzo de 2008, 04:53:12 »
HOla!

El resultado es correcto , y en realidad te da un numero negativo.

Lo que haces es 50-AF.

Si hicieras AF-50 =5f

 Sublw =  Literal o inmediato - W , donde L=50  y W = POS_JOY4
                 L
              -  W
            ----------

Saludos!

Atentamente
 Akenafab

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: duda sublw
« Respuesta #4 en: 22 de Marzo de 2008, 04:57:22 »
.. ok estoy haciendo la cuenta al reves... Por cierto manolo tu tambien estás apurado de tiempo igual que yo hoy? jajaja estas que horas son
Es mi horario habitual. Ya sabes, el nick tiene su coste.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: duda sublw
« Respuesta #5 en: 22 de Marzo de 2008, 17:07:53 »
muchas veces el error ocurre por una confusion con el nombre de la instrucción.

sublw pareceria decir Substract Literal from W, pero es precisamente al reves. Substract W from Literal.

Saludos...
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: duda sublw
« Respuesta #6 en: 22 de Marzo de 2008, 18:08:25 »
De hecho la sintaxis que manejan comunmente por "comodidad" en el caso de

movfw   POS_JOY4

también es muy propensa a errores.

La sintaxis correcta es:

movf     POS_JOY4,W


Ambas sintaxis son correctas.  El movfw es un macro del MPASM, nada más. 

Tal vez alguno pueda maltipear movwf por movfw pero es lo mismo que mal tipear subwf o sublw, etc...

Tal vez la moraleja sea: En assembly, un maltipeo se paga caro ... muy caro.
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Re: duda sublw
« Respuesta #7 en: 28 de Marzo de 2008, 07:34:05 »
De hecho la sintaxis que manejan comunmente por "comodidad" en el caso de

movfw   POS_JOY4

también es muy propensa a errores.

La sintaxis correcta es:

movf     POS_JOY4,W


Ambas sintaxis son correctas.  El movfw es un macro del MPASM, nada más. 

Tal vez alguno pueda maltipear movwf por movfw pero es lo mismo que mal tipear subwf o sublw, etc...

Tal vez la moraleja sea: En assembly, un maltipeo se paga caro ... muy caro.


Y tan caro Manuix....

Me he llevado en 2 ocasiones mas de 4 horas perdidas por tipear mal una llamada Macro... ya que el ensamblador no te avisa de este error. Escribia GUARDA_CONTEXTO en vez de GUARDO_CONTEXTO.... imaginaos los resultados de este error...

Me parece que mplab como entorno deberia mejorar bastante y facilitar una programacion que ya de por si es bastante exigente, con tantos registros y parámetros.

1 slaudo

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: duda sublw
« Respuesta #8 en: 28 de Marzo de 2008, 15:04:57 »
Pues yo no opino lo mismo Juan Carlos. Está claro que el ASM tiene su dificultad y requiere de un dominio de la técnica de programación en assembler y de un conocimiento exhaustivo de los registros del PIC y sus funciones.
Pero si hay automatismos que el compilador pudiera tener para evitar errores "de bulto", siempre creo que sería una medida positiva.
¿Cuál es la ventaja de no tenerlos?

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: duda sublw
« Respuesta #9 en: 28 de Marzo de 2008, 15:24:54 »
Ah, ok, en ese caso estamos de acuerdo, y a ti también te parecería bien tenerlos.

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Re: duda sublw
« Respuesta #10 en: 28 de Marzo de 2008, 15:28:39 »
Igual que incluyen el visual inizializer pq no pueden poner este tipo de cosas??? me parece inadmisible q un compilador no te avise de cuando usas una macro que no existe y que si te avise mil veces de warnings estupidos como que este registro no está en el banco 1....

Desconectado sander

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 624
Re: duda sublw
« Respuesta #11 en: 28 de Marzo de 2008, 20:21:29 »
y que si te avise mil veces de warnings estupidos como que este registro no está en el banco 1....

Ese warning no es estupido , creo que a mas de uno le ha pasado equivocarse de banco, ahora sobre diferenciar las macros de las etiquetas, deberia ser algo que modifiquen, pero mientras no este modificado....

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 Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: duda sublw
« Respuesta #12 en: 28 de Marzo de 2008, 22:10:36 »
Y tan caro Manuix....

Me he llevado en 2 ocasiones mas de 4 horas perdidas por tipear mal una llamada Macro... ya que el ensamblador no te avisa de este error. Escribia GUARDA_CONTEXTO en vez de GUARDO_CONTEXTO.... imaginaos los resultados de este error...

Me llama la atención que el MPLAB no te avise de este error, ya que previamente deberías declararla como por ejemplo:

GUARDO_CONTEXTO          EQU       H'23'

#DEFINE       GUARDO_CONTEXTO       BSF        PORTA,0     ;Por ejemplo

No se como has utilizado esa intrucción. Si lo citas como GUARDA_CONTEXTO, en el programa, debería darte error.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: duda sublw
« Respuesta #13 en: 29 de Marzo de 2008, 14:22:19 »
muchas veces el error ocurre por una confusion con el nombre de la instrucción.

sublw pareceria decir Substract Literal from W, pero es precisamente al reves. Substract W from Literal.

Saludos...

debe ser por la gramática english, la forma extraña de escribir algunas frases al revés  :?

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Re: duda sublw
« Respuesta #14 en: 29 de Marzo de 2008, 20:02:43 »
Y tan caro Manuix....

Me he llevado en 2 ocasiones mas de 4 horas perdidas por tipear mal una llamada Macro... ya que el ensamblador no te avisa de este error. Escribia GUARDA_CONTEXTO en vez de GUARDO_CONTEXTO.... imaginaos los resultados de este error...

Me llama la atención que el MPLAB no te avise de este error, ya que previamente deberías declararla como por ejemplo:

GUARDO_CONTEXTO          EQU       H'23'

#DEFINE       GUARDO_CONTEXTO       BSF        PORTA,0     ;Por ejemplo

No se como has utilizado esa intrucción. Si lo citas como GUARDA_CONTEXTO, en el programa, debería darte error.

Ya pero es que lo que hago no es usar una variable o registro lo que se está llamando es una macro. Prueba a llamar una macro inexistente con mplab veras que no te da error alguno.

1 saludo.


 

anything