TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: hicho333666 en 21 de Diciembre de 2004, 14:57:00
-
Hola mi nombre es Mauricio y estoy haciendo un programita en el pic 16f628A
lo que me hace es que no me utiliz bien el comando movwf generandome un loop diferente al que quiero generar.
pulse y paux son dos variables que las defini anteriormente de la siguiente forma
pulse EQU 0x72 ; registro utilizado para almacenar el ancho del pulso
paux EQU 0x73 ; registro auxiliar
pulse_default EQU D"02" ; ancho del pulso de inicialización
ahora "pulse" al inicio del programa la inicializo como
movlw pulse_default ; Cargo ancho de pulso por defecto
movwf pulse
luego cuando hago la siguiente instruccion el paux se me va al carajo
me queda valores de 114 por ej
movlw pulse
movwf paux
ademas al simular en el mplab el valor del pulse esta bien antes de mover pulse a W.
Por Favor necesito ayudaaaaaaaaaaaa
-
Creo que deberías hacerlo asi:
movf pulse,w
movwf paux
La instrucción movlw es para cargar valores literales en el acumulador,por ej:
movlw 0x5F
-
si si, es como dice Modulay...
ademas, no se como empieza el programa, pero en algun lado tienes que definir la posicion del registro pulse... porque sino te lo toma como un literal
Norberto
-
Satamente:
0x72 lo has puesto como dirección de memoria (esa es tu intención) para usarlo como variable, pero si le pones : movlw 0x72 te moverá al acumulador W el valor 0x72, no lo que hay contenido dentro de la posicion 0x72.
Por cierto, en la pagina de memoria del 628 veo la posicion 0x72 bastante alta... no vaya a ser cosa que ... mejor usa 20h o algo mas cercano (figura 3-2 datasheet del 628)