TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: macedo 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
-
.
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.
-
Hola, el ASCCII es un registro que se carga con W, entonces tengo que hacerlo separado.
Gracias
-
Has visto estas, en el mensaje 13 hay varias rutinas matematicas.
http://www.todopic.com.ar/foros/index.php?topic=23812.0
-
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
-
Hola, esa expresion no funciona deberia quedar asi:
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.