TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: FirmSoft en 16 de Octubre de 2004, 11:02:00
-
la instruccion movf... como funcionaria en el siguiente codigo
movf 0x0A,set
... mueve el valor de la direccion o el valor 0x0A dentro de SET???
Gracias y Saludos.
-
No jonnyman, la instrucción "movf f,d" mueve el registro f a f si d=1 ó a w, si d=0.
Lo que me parece curioso es que en el simulador no te da error, pero se comporta como un nop. 
Saludos,
-
Saludos de nuevo..... eso pregunta todo lo q kieras q no te de pena ser novato!!... todos alguna ves lo fuimos.... promero q nada tienes q dejar de usar esas nomenclaturas raras para cargar valores el acumulador.... o a donde sea.... si vas a cargar un valor decimal solo pones por ejemplo movlw .10 (punto diez), si vas a cargar un valor hexadecimal pones por ejemplo movlw 0AH(q es 10 en decimal) y si vas a cargar un valor binario pones por ejemplo movlw b"00001010" (q es 10 en decimal)... lo otro es q en los pics tu no puedes cargar literales ni informacion de ningun tipo directamente a un registro.... siempre debes cargarlo primero al acumulador osea "W" la instruccion movf es muy util y sirve para hacer muchas cosas por ejemplo si kieres saber si un registro es "0" pones movf prueba,1 y luego btfss status,Z y si kieres cargar en otro registro el valor de prueba debes poner movf prueba,0 y luego movwf registro...... donde "1" significa q el resultado de la operacion q estas haciendo debe guardarse en el mismo registro sea cual sea la instriccion o la operacion y "0" significa q el resultado de la operacion q estas realizando debe guardarse en el acumulador o "W"(W de work, registro de trabajo) tienes q tener mucho cuidado al elegir el destino de cada una de tus operaciones ya q puedes perder datos o simplemente no conseguir ningun resultado!!!! espero te ayude!!!
-
Gracias muchachos... ambas respuestas me son muy utiles esto que dices es lo que hago:
eso pregunta todo lo q kieras q no te de pena ser novato!!... todos alguna ves lo fuimos
ahora unas dudas que me quedaron de tu respuesta... he visto codigos donde envian un numero decimal con un punto como has hecho en el ejemplo ".10" ... yo normalmente hago d"10" y en exa hago 0x0A ... talves sea igual... tu me diras... otra cosa... cuando uso el ADC del F877:
CICLO bsf ADGO ;Inicia la conversión A/D
compr
btfsc ADGO ;Espera que termine de
goto compr
y he visto que hacen asi:
CICLO bsf ADGO ;Inicia la conversión A/D
btfsc ADGO ;Espera que termine de convertir
goto $ -1
Que me recomiendas?... es malo lo que hago yo??... Bueno, con esto elimino varias duas, agradesco el tiempo que inviertes en mis dudas.. y te envio un abrazo desde mi entrerios! ... GRACIAS!!!
-
Es casi lo mismo ya que el simbolo $ significa la direccion donde estes en ese presiso momento muchos lo usan para evitarse poner etiquetas, en tu caso saltar a la etiqueta compr es lo mismo que goto $-1 asi que las dos formas son correctas.
-
bien!.. gracias Micom, ahora entiendo el significado del simbolo $ ... les estoy muy agradecidoo a todos... sin su ayuda no podria avanzar en mis proyectos...Gracias y Saludos!!!!


-
la rutina esa del adc es exactamente igual si lo haces de las 2 maneras y con respecto a lo de la nomenclatura si es lo mismo pero segun mi punto de vista es mucho mas facil la nomenclatura q te di.... un hexa es 0FFH no hay es q estar poniendo 0xFF y en la decimal para q poner d"25" si puedes poner .25 y ya!!! saludos!!