TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Kedutpic en 27 de Julio de 2006, 15:21:18

Título: NO FUNCIONA TIMER 2 PIC16F877
Publicado por: Kedutpic en 27 de Julio de 2006, 15:21:18
 :) SALUDOS AMIGOS DE FORO LES CUENTO, ESTOY COMENZANDO A PROGRAMAR CON EL PIC16F877 Y TRATO DE SACAR POR EL PUERTO B UN FLASH DE LUCES DE 0.25 SEG PERO CON EL TIMER 2 LO QUE ME SUCEDE ES QUE ME SALE SOLO UNA VES SE PRENDE Y LUEGO SE APAGA PERO NUNCA MAS VUELVE A ENCENDERSE :( :(  SI ALGUIEN PUEDE AYUDARME LES ESTARIA AGRADECIDO   :-/ AQUI LES DEJO EL  PROGRAMA EN ASM PARA QUE TENGANUNA IDEA CLARA DE LO QUE ESOTY DICIENDO OK MANES GRACIAS .
   
                                LIST P=16F877A
      INCLUDE <P16F877A.INC>

CUENTA   EQU 0X30

      ORG 0X2007
      DW 0X3F7A
      ORG 0X0
      BSF STATUS,RP0
      CLRF TRISB
      BCF STATUS,RP0
      MOVLW B'01101011'
      MOVWF T2CON
      MOVLW .224
      MOVWF PR2
      MOVLW 0X0
A1      MOVWF PORTB
      CALL DELAY
      COMF PORTB,F
      GOTO A1
      
DELAY
      MOVLW .5
      MOVWF CUENTA
      BSF T2CON,TMR2ON
A2      BTFSS PIR2,TMR2IF
      GOTO $-1
      BCF PIR2,TMR2IF
      DECFSZ CUENTA,F
      GOTO A2
      RETURN       
      END
Título: Re: NO FUNCIONA TIMER 2 PIC16F877
Publicado por: maunix en 27 de Julio de 2006, 16:25:42
Hola curio, te paso algunas de mis sugerencias.

Código: ASM
  1. A1              MOVWF PORTB
  2.                 CALL DELAY
  3.                 COMF PORTB,F
  4.                 GOTO A1

Fíjate, aquí tu complementas el puerto B, pero luego haces un GOTO A1.  En esa línea, tu mueves el contenido del WREG al Puerto B, sobreescribiendo lo que habías puesto antes en el PUERTOB.

Mueve el label A1, una línea más abajo, puntualmente en "CALL DELAY"

      
Código: ASM
  1. DELAY
  2.                 MOVLW .5
  3.                 MOVWF CUENTA
  4.                 BSF T2CON,TMR2ON
  5. A2              BTFSS PIR2,TMR2IF
  6.                 GOTO $-1
  7.                 BCF PIR2,TMR2IF
  8.                 DECFSZ CUENTA,F
  9.                 GOTO A2
  10.                 RETURN         
  11.                 END

El TMR2IF, no está en el PIR2, sino en el PIR1.   Cambia el código donde lo tengas por PIR1,TMR2IF


Espero te sirva de ayuda.

Saludos
Título: Re: NO FUNCIONA TIMER 2 PIC16F877
Publicado por: Kedutpic en 27 de Julio de 2006, 16:35:52
ok gracias voy a probrarlo .gracias  :P
Título: Re: NO FUNCIONA TIMER 2 PIC16F877
Publicado por: Manofwar en 27 de Julio de 2006, 17:06:40
Hola Curio

Además de lo que te ha dicho Maunix, el registro de período PR2 está en el banco 1, por lo que el valor 224 lo estás cargado en T2CON.

En la configuración del T2CON (MOVLW B'01101011') el bit2 está a 0 por lo que deshabilitas el TMR2, así que debes cambiarlo por 1.
Título: Re: NO FUNCIONA TIMER 2 PIC16F877
Publicado por: Kedutpic en 29 de Julio de 2006, 22:58:12
 :) hola amigos si ya lo probre ta chevre mi juego de luces pero no se si sera mi programa cosa que es seguro pero las luces no tienen y}un tiempo uniforme y hasta hubo un momento que se paro las luces :(  estoy tratando de solucionarlo creo que el problema esta en el delay tengo modificarlo de tal manera que me pueda dar un flash uniforme ..ah con respecto a TMRON si leistes mi programa recien lo habilito cuando hago el delay, esto trae algun problema ??? eso quisiera saber ok manes seguire intentando ... ;) ah y que viva el foro ta locazo  :-/
Título: Re: NO FUNCIONA TIMER 2 PIC16F877
Publicado por: maunix en 30 de Julio de 2006, 12:39:50
:) hola amigos si ya lo probre ta chevre mi juego de luces pero no se si sera mi programa cosa que es seguro pero las luces no tienen y}un tiempo uniforme y hasta hubo un momento que se paro las luces :(  estoy tratando de solucionarlo creo que el problema esta en el delay tengo modificarlo de tal manera que me pueda dar un flash uniforme ..ah con respecto a TMRON si leistes mi programa recien lo habilito cuando hago el delay, esto trae algun problema ??? eso quisiera saber ok manes seguire intentando ... ;) ah y que viva el foro ta locazo  :-/

No, no está mal que lo actives al ingresar a la rutina de delay, pero es innecesario.  Siempre estará activándose siendo que después de la primera vez ya quedó activo.

Siendo un loop interminable esto del parpadeo, yo lo setearía antes de ingresar a la rutina de delay porque de todas formas,  lo que tu haces es verificar el estado del fllag.

Es raro eso que dices que te parpadean a ratios diferentes, eso puede ser o porque tienes el watchdog activado o porque no has observado lo que te comenté de que estás pisando el contenido del PORTB con el wreg.

Si quieres, vuelve a postear tu software 'completo' asi le echamos un vistazo.

Saludos
Título: Re: NO FUNCIONA TIMER 2 PIC16F877
Publicado por: Kedutpic en 30 de Julio de 2006, 14:25:48
ok men voy a pasarte el programa pero antes lo voy a chequear minuciosamente y te aviso ok . :o
Título: Re: NO FUNCIONA TIMER 2 PIC16F877
Publicado por: reydtodo en 31 de Julio de 2006, 23:01:50
ERES UN LOL COMO NO PUEDES HACER ALGO TAN SIMPLE, -.-! TE PASASTES AMIGO POLLO
Título: Re: NO FUNCIONA TIMER 2 PIC16F877
Publicado por: maunix en 01 de Agosto de 2006, 08:19:06
ERES UN LOL COMO NO PUEDES HACER ALGO TAN SIMPLE, -.-! TE PASASTES AMIGO POLLO

No veo el motivo de la burla...  :x :x

Siempre se comienza por las cosas simples y con innumerables dudas, algunas de las cuales tienen respuestas simples y otras no.



Título: Re: NO FUNCIONA TIMER 2 PIC16F877
Publicado por: Kedutpic en 20 de Agosto de 2006, 14:36:21
 :o :o :o :o
SALIO  :-/ GRACIAS MANES YA TENGO EL PROGRAMA  CORREGIDO
AHORA SI ESTA CHEVRE ELJUEGO DE LUCES GRACIAS AQUI LES DEJO EL PROGRAMA POR SI ALGUIEN QUE TAMBIEN ESTA COMENZANDO A PROGRAMAR COMO YO LE SIRVA.
 
 LIST P=16F877A
  INCLUDE <P16F877A.INC>

CUENTA   EQU 0X30

      ORG 0X2007
      DW 0X3F7A
      ORG 0X0
      BSF STATUS,RP0
      CLRF TRISB
      MOVLW .222
      MOVWF PR2
      BCF STATUS,RP0
      MOVLW B'01101011'
      MOVWF T2CON
      MOVLW 0X0
      MOVWF PORTB
A1  CALL DELAY
      COMF PORTB,F
      GOTO A1
     
DELAY
      MOVLW .5
      MOVWF CUENTA
      BSF T2CON,TMR2ON
A2  BTFSS PIR1,TMR2IF
      GOTO $-1
      BCF PIR1,TMR2IF
      DECFSZ CUENTA,F
      GOTO A2
      RETURN       
      END
Título: Re: NO FUNCIONA TIMER 2 PIC16F877
Publicado por: KARO009 en 06 de Mayo de 2012, 01:10:02
hola disculpen pero soy nueva en este foro de programación  si alguien me puede ayudar con un programa con el pic16f877 con el tmr2 (un contador de o-9) es urgente gracias en asm porfa