Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

05/08/2012 #1


16F88 (No copia contenido de registro a PORTA)
Saludos, tengo un problema programando el PIC16F88; la función de este codigo es incrementar el registro "n1" en una unidad y eso pasarlo al PORTA. Como pueden ver, primero lo paso al registro W con MOVF n1,0 y luego ahi lo paso al PORTA con MOVWF. No encuentro la razon por la que el n1 se comporta correctamente, incrementando el valor, pero no doy con la forma de copiar ese valor a PORTA. si me pueden ayudar les agradezco. El banco esta seleccionado con banksel, y anteriormente asigné "porta equ 0x05".

banksel porta
incf n1,1
movf n1,0
movwf porta
return
05/08/2012 #2

Avatar de Daniel Meza

Asegurate que el registro "n1" se encuentre declarado en el mismo banco que el registro PORTA
05/08/2012 #3


Daniel Meza dijo: Ver Mensaje
Asegurate que el registro "n1" se encuentre declarado en el mismo banco que el registro PORTA
Lo está! estan en el mismo banco los PORTA/B y los registros de proposito general no?
05/08/2012 #4

Avatar de hamster

Revisa si TRISA = 0x00 esta configurado como salida.
bcf STATUS, RP0

deberías simularlo en MPLAB SIM.
05/08/2012 #5

Avatar de Daniel Meza

Así es, bueno depende donde lo hayas declarado, normalmente si, se usan los primeros registros del banco 0... Veamos entonces, asegúrate que el puerto A este declarado como salida, coloca una instrucción "sleep" antes de regresar de la rutina para desechar que el error se provoque al regresar de la rutina por alguna instrucción que utilice PORTA
05/08/2012 #6


hamster dijo: Ver Mensaje
Revisa si TRISA = 0x00 esta configurado como salida.
bcf STATUS, RP0

deberías simularlo en MPLAB SIM.
Buenas, trisa=0x85 y trisb=0x86... lo estoy haciendo en el mplab. el trisa es "00000000" digamos TODOS salidas. el portb funciona perfecto porque son las entradas pero no logro enviar la salida a porta

---------- Actualizado después de 9 minutos ----------

Daniel Meza dijo: Ver Mensaje
Así es, bueno depende donde lo hayas declarado, normalmente si, se usan los primeros registros del banco 0... Veamos entonces, asegúrate que el puerto A este declarado como salida, coloca una instrucción "sleep" antes de regresar de la rutina para desechar que el error se provoque al regresar de la rutina por alguna instrucción que utilice PORTA
trisa 0x00 y trisb 0x01 ? donde trisa es "00000000" para que todo sea salida cierto?
06/08/2012 #7

Avatar de Daniel Meza

Así es.. sabes, también revisa el registro ANSEL, normalmente después de un reset, los pines del puerto A son configurados como analógicos. Establecelos como digitales, en la hoja de datos vine el procedimiento, si no mal recuerdo es suficiente con poner a 0's el registro ANSEL
07/08/2012 #8

Avatar de Meta

Mejor pon el código completo de lo que hiciste. Comprenderemos mejor la subrutina que nos plantea.

Saludo.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.