Programación Específica > Microcontroladores

 Apagar Y Encender El Puerto B De Un 16f84

<< < (2/3) > >>

© 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        &#34;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        &#34;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

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa