Programación Específica > Microcontroladores
Apagar Y Encender El Puerto B De Un 16f84
© Jonathan ©:
- Holas, los retardos son exactos, debes tener en cuenta que algunas instrucciones tardan 2 ciclos de instruccion y otras 1... pero si lo lees bien te daras cuenta que son muy exactos, por cierto, usas el programa de retardos del FTP??, con ese no he tenido jamas un problema. Saludos ! ;)
eliza_marti:
Gracias © Jonathan © por la página! . :yes: .está muy buena..seguí los consejos y entonces configuré los registros que iba a utilizar.. así:
--- Código: Text ---list p=16f84Ainclude "p16F84A.inc” STATUS equ 0x3; warningPORTB equ 0x6; warningTRISB equ 0x86; aunque estaba en 0x6 y me daba error ; por eso lo cambie = me da un warningorg 00hreset goto inicioorg 10hinicio;-------------------------------------------;Configurar el puerto B como salida;--------------------------------------------;Registro TRISB=00h para salidas.bsf STATUS,5; pongo a uno el bit 5 del registro ; STATUS para entrar en el banco1.movlw 00h; cargo w con el dato 00h. movwf TRISB; cargo el registro TRISB con el w para; hacer el puerto B como salida.bcf STATUS,5; pongo a cero el bit 5 del registro; STATUS para entrar en el banco 0....
Al compilarlo No me da errores pero me da 3 warnings iguales: :(
--- Código: Text ---Found label after column 1. (STATUS) Found label after column 1. (PORTB) Found label after column 1. (TRISB) Qué significa eso de que encontró una etiqueta después de la columna 1?.. :huh:
Se que los warning no son errores..pero aquí son importantes?....
Y tambien un mensaje de (no de error porcia):
--- Código: Text ---Register in operand not in bank 0 .
y me señala el:
movwf TRISB
Y no entiendo porqué si me estoy cambiando al banco 1 para configurarlo. :huh:
Muchas Gracias anticipadas por ayudarme!.... :) ..bye!.. :hola: :comp:
Huguen_aus_Tirol:
Hola Eliza! Es comun que salga el mensaje "register in operand not in bank 0", es el mensaje 302, y el programa te funciona igual.
El warning tambien ya lo conosco (es el 207), pero en este preciso momento no me acuerdo como lo solucione :angry: De todas formas creo que no hay problema. Tienes que fijarte en que linea de tu codigo se encuentra el problema, y me dices asi lo solucionamos....
--- Código: Text --- list p=16f84A[B]errorlevel -302, -207[/B] include "p16F84A.inc” STATUS equ 0x3; warningPORTB equ 0x6; warningTRISB equ 0x86; aunque estaba en 0x6 y me daba error ; por eso lo cambie = me da un warningorg 00hreset goto inicioorg 10hinicio
Con la linea anterior evitas que te salgan el mensaje y el warning
Bueno, espero te ayude...
Saludos
Ah!!!!! Seguramente cuando declaras los registros, no estan en la primer columna de la pantalla!! Fijate que no haya ningun espacio, o tab ni nada!! Por eso el warning 207. Pero tiene que funcionar :D
Saludos!
© Jonathan ©:
Holas, del mensaje anterior es muy util la linea errorlevel -302, -207.. es la unica manera que encontre de sacar ese mensaje.
Paso a explicarte algo del codigo. en las lineas:
--- Citar ---include "p16F84A.inc”
STATUS equ 0x3
PORTB equ 0x6
TRISB equ 0x86
--- Fin de la cita ---
Estas declarando STATUS, PORTB y TRISB, los cuales ya se encuentran declarados dentro de "p16F84A.inc” .. para eso incluyes el archivo, para evitar hacer las equivalencias.
El Warning que te aparece se debe avisa que estas entrando en el Banco 1 y usando la direccion 0x86, es dificil de comprender, pero si usas 0x06 en vez de 0x86 estando en el BANCO 1 el warning desaparece.
Al pasarte al Banco 1 es como que si nuevamente comenzara a contar los registros desde cero, por lo que el registro TRISB no es exactamente 0x86, sino que es 0x06... ahora si estas en el Banco 0, para llegar al registro TRISB del banco 1 si te direccionas usando el 0x86. Creo que no me hice entender :blink: .. mas facil
en el Banco 0 usas TRISB para llegar a 0x86 (no es buena opcion)
en el Banco 1 usas PORTB para llegar a 0x06 que estando en el banco1 es = a TRISB (0x86)
Bueno, he probado programas sin entrar al banco 1 para configurar pines y me han funcionado, siempre usando TRISB. Pero puede ser que este mal acostumbrarse, mejor es dejar que los warning hagan sus trabajos y nosotros el nuestro... siempre recordar entrar en un banco y salir del mismo. Un warning no puede frenarte :lightsabre: , son solo avisos :whistling: . Saludos! :hola: :P
eliza_marti:
Muchas Gracias Chicos por ayudarme en mi aprendizaje!... :hola: ..les cuento que ahora ya no tengo ninguna duda acerca de este programita :lol: ...hice lo que me dijiste Jonathan..le quite la definición de registros porque ya se encuentran en el archivo de cabecera...y...entendí perfectamente lo de los bancos... :D .. Huguen_aus_Tirol..puse el errorlevel -302, -207..y los warnings desaparecieron..
Gracias de verdad y disculpen mis preguntas de principiante :hola: ..seguiré practicando... :hola: .. :ph34r: :comp:
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa