⚡ Descuentos en cursos en video - Lleva tu aprendizaje técnico al siguiente nivel y aprovecha precios especiales antes de que termine la oferta. 🔥 Aprovechar oferta ahora 🔥
Microcontroladores y sistemas digitales

Problema con microcotrolador PIC

Jorge2017
hace 5 años
hace 5 años
Hola buenas tardes amigos, les comento que soy nuevo en el aprendizaje de microcontroladores, ahora estoy tratando de usar el timer 1, usando la interrupcion por desbordamiento en el PIC 12F629, el programita lo que tendria que hacer es durante aproximadamente medio segundo encender un led y otro medio segundo apagarlo y asi sucesivamente, no se si estoy cometiendo algun error en la configuracion o me falta agregarle algo a la subrutina de servicio de interrupcion, desde ya gracias por sus ayudas, el programa es el siguiente:prueba04.asm[986] Igual lo copio y lo pego abajo: ;prueba_04= Se trata de usar, configurar e implementar el timer 1 ;del PIC 12F629 haciendo que un LED encienda alrededor de medio ;segundo y se apague alrededor de medio segundo sucesivamente.     LIST    P=12F629     INCLUDE    <P12F629.INC>          __CONFIG    _CP_OFF & _CPD_OFF & _WDT_OFF & _BOREN_OFF & _MCLRE_ON & _PWRTE_ON & _INTRC_OSC_NOCLKOUT          #DEFINE        LED        GPIO,GP0               ORG            0     goto        Inicio     ORG            4     goto        Interrupcion_TMR1      Inicio     bsf            STATUS,RP0     clrf        TRISIO     call        03FFh     movwf        OSCCAL     movlw        b'00000001'     movwf        PIE1     bcf            STATUS,RP0     movlw        b'00000000'     movwf        TMR1L     movwf        TMR1H     movlw        b'00110101'     movwf        T1CON     movlw        b'11000000'     movwf        INTCON      Principal     goto        Principal      Interrupcion_TMR1     movlw        b'00000000'     movwf        TMR1L     movwf        TMR1H     btfsc        LED     goto        EstaEncendido     bsf            LED     goto        FinInterrupcion EstaEncendido     bcf            LED FinInterrupcion          bcf            PIR1,TMR1IF     retfie          ORG            03FFh     retlw        b'10000000'          END
first
first
236
hace 5 años

estoy bastante oxidado con el tema del asm pero creo que esta línea esta como sin sentido
>Principal<
> goto Principal<
Es como si fuera un bucle infinito

Responder
Jorge2017
hace 5 años

hola first, si es un bucle infinito pero deberia romperse por la interrupcion y antender la subrutina de interrupcion, voy a ver que pasa si pongo otra cosa como por ejemplo "$" en lugar de "Principal"

Responder
Jorge2017
hace 5 años

Muchas gracias first, entre al foro y vi que hablaban del PIC 12F629, la pregunta inicial era algo similar a lo que yo quiero hacer, pero el lo hace utilizando subrutinas de retardo, yo quiero hacerlo utilizando el Timer1, usando su interrupcion por desbordamiento, por eso no se si esta mal configurado o que en mi prigramita el Timer 1.

Responder
Jorge2017
hace 5 años

Hola gente, despues de simular el programita en MPLAB, me di cuenta que me faltaba apagar el comparador. Muchas gracias first, si no mal recuerdo hicieron un comentario acerca de eso en el foro que me pasaste pero lo pase por alto. Ahora funciona correctamente.

Responder
first
first
236
hace 5 años

ok me alegro, lo ciento si no te pude resolver a la primera, pero es que hace mucho mucho que no programo pic y mucho menos en asm

Responder
Jorge2017
hace 5 años

como doy resuelta esta pregunta?

Responder
first
first
236
hace 5 años

pues ni idea, debería de salirte un botón por ahí con la opción

Responder
Jorge2017
hace 5 años
hace 5 años
Habia que apagar el comparador analogico.
Reparaciones similares solucionadas

¿Conoces una solución?

¡Aprende a reparar con estos cursos YoReparo!

4.84
(25)

Curso Práctico de Reparación y Bobinado de Motores Eléctricos

Héctor Castiñeira
$ 60 USD
$ 20 USD
4.73
(22)

Curso Reparación de Fuentes Conmutadas de PC y Equipos Electrónicos

Maximiliano Resch
$ 40 USD
$ 20 USD
4.64
(11)

Curso Electrónica para Reparación de Placas

Santiago Cediel
$ 29 USD
$ 11 USD
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos?
Regístrate gratis