Autor Tema: Expresión matemática  (Leído 2249 veces)

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

Desconectado macedo

  • PIC18
  • ****
  • Mensajes: 270
Expresión matemática
« en: 19 de Marzo de 2012, 12:51:59 »
Hola necesito hacer una ecuación y micod. es así:

   movlw    (ASCIICode - 0x20)*0X0c

donde ASCII contiene el valor de un carácter a buscar en una tabla, pero el compilador me tira un error, que tengo que hacer?, separo la primer secuencia y luego lo multiplico o estoy formulando mal?, ademas quisiera si me dan una mano ya que en un punto esta formula tiene tres dígitos.
Saludos

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: Expresión matemática
« Respuesta #1 en: 19 de Marzo de 2012, 13:46:42 »
.


Esa expresión podría aceptarla el compilador únicamente si ASCIICode es una constante ya declarada con un valor determinado. Sino vas a tener que desglosar la operación y hacer primero la resta, después la multiplicación. Seguramente en este foro ya hay publicados varios algoritmos de multiplicación, tal vez encuentres el que te sirva.

Saludos.

When you see a good move, look for a better one (Emanuel Lasker)

Desconectado macedo

  • PIC18
  • ****
  • Mensajes: 270
Re: Expresión matemática
« Respuesta #2 en: 19 de Marzo de 2012, 14:43:28 »
Hola, el ASCCII es un registro que se carga con W, entonces tengo que hacerlo separado.
Gracias

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Expresión matemática
« Respuesta #3 en: 19 de Marzo de 2012, 14:45:30 »
Has visto estas, en el mensaje 13 hay varias rutinas matematicas.

http://www.todopic.com.ar/foros/index.php?topic=23812.0

Desconectado macedo

  • PIC18
  • ****
  • Mensajes: 270
Re: Expresión matemática
« Respuesta #4 en: 22 de Marzo de 2012, 16:03:06 »
Hola le expresion ,
   movlw    (ASCIICode - 0x20)*0X0c

quedaría así:


   movlw      0x20
   SUBWF      ASCIICode,F
   MOVLW      0X0C
   MULWF      ASCIICode

donde el resultado estaría en:
PRODH:PRODL

Esa es mi pregunta para ver si lo pude resolver bien.
Saludos

Desconectado macedo

  • PIC18
  • ****
  • Mensajes: 270
Re: Expresión matemática
« Respuesta #5 en: 26 de Marzo de 2012, 14:22:37 »
Hola, esa expresion no funciona deberia quedar asi:
Código: [Seleccionar]
    movlw      0x20
    SUBWF      ASCIICode,W             ; Resto al valor ASCII el valor 0x20
    MULLW      0X0C                    ; y lo multiplico 0X0C * W -> PRODH:PRODL
                                       ; obteniendo asi en PRODH:PRODL la direccion de mi caracter
                                       ; a mostrar.
    MOVF    PRODL,W
    ADDWF   TBLPTRL,F                ; Sumo para formar la direccion del caracter

    btfsc STATUS,C               ; Si hubo un acarreo incremento.
incf TBLPTRH,F

    MOVF    PRODH,W                    ; Sumo para formar la direccion del caracter
    ADDWF   TBLPTRH,F                  ; Ya tengo la direccion de mi caracter.


Con esto puedo llamar a una tabla guardar el carácter en ASCIICode y cargar el valor verdadero en mi otra tabla para poder mostrarlo.

les paso la direccion donde esta el cod. entero: http://www.todopic.com.ar/foros/index.php?topic=37913.0
Esto funciona a la perfección.


 

anything