TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: hicho333666 en 21 de Diciembre de 2004, 14:57:00

Título: soy novato en esto nesecito AYUDAAAA
Publicado 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   
Título: RE: soy novato en esto nesecito AYUDAAAA
Publicado por: Modulay en 21 de Diciembre de 2004, 15:05:00
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

Título: RE: soy novato en esto nesecito AYUDAAAA
Publicado por: todopic en 21 de Diciembre de 2004, 21:19:00
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
Título: RE: soy novato en esto nesecito AYUDAAAA
Publicado por: carlyvalente en 22 de Diciembre de 2004, 05:21:00
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)