Autor Tema: Necesito ayuda Urgente Programa con el Pic16f84a mplab  (Leído 8220 veces)

0 Usuarios y 4 Visitantes están viendo este tema.

Desconectado nandez

  • PIC10
  • *
  • Mensajes: 25
Re: Necesito ayuda Urgente Programa con el Pic16f84a mplab
« Respuesta #15 en: 14 de Diciembre de 2011, 15:30:38 »
Graciass tio no pasa nada por la intromisionn ni muchoo menos entonces  eliminoo ese bucle.. ya m parecia raro a mi esoo.. entonces lo cambio por return y vuelve a la llamada y sigue con la decrementacion de los Conta_1 y conta_2 no??? Graciass ;)

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: Necesito ayuda Urgente Programa con el Pic16f84a mplab
« Respuesta #16 en: 14 de Diciembre de 2011, 15:32:54 »
Tu rutina deberia de quedar asi:

Código: [Seleccionar]
;*****************************************************************************
;CONGIGURACION DEL OPTION
;****************************************************************************          
DOSMINUTOS:        
ESPERA:      

         BSF             STATUS, RP0        ;banco 1      
             MOVLW           B'10000111'
             MOVWF           OPTION_REG         ;pull-up's desactivadas, prescalador para TMR0 en 1:256
 
             BCF             STATUS, RP0        ;banco 0
          BCF            INTCON,RBIE
             MOVLW           d'255'
             MOVWF           CONTA_1            ;aux1 en d'255'
 
             MOVLW           d'7'
             MOVWF           CONTA_2            ;aux2 en d'7'
 
             CLRF            TMR0               ;TMR0 en d'0'
 
      
 
             BSF             INTCON, GIE         ;habilitar interrupciones globales
             BSF             INTCON, T0IE        ;habilitar interrupciones por TMR0
 

           Return

;*************************************************

Todos los días se aprende algo nuevo.

Desconectado nandez

  • PIC10
  • *
  • Mensajes: 25
Re: Necesito ayuda Urgente Programa con el Pic16f84a mplab
« Respuesta #17 en: 14 de Diciembre de 2011, 15:38:38 »
Ok asin es como la e dejado pero sigue sin funcionarmee y creo que puede ser por el final del programa que vuelto a poner return y retfie... aver si puedes aconsejarme y ya lo depuro el porgramaa que me traee de cabezaaa ejejeje... Muchimass Graciass desde almeriaa ejejej

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: Necesito ayuda Urgente Programa con el Pic16f84a mplab
« Respuesta #18 en: 14 de Diciembre de 2011, 15:48:03 »
A ver si no me equivoco y si es asi que otro me corrija. ;-)
Nandez:

En tu programa dentro de la rutina INICIO, yo quitaria el ultimo RETFIE y lo sustituira por END

Creo que antes del org 05
debe de ir  la instrucion ORG 04 para que te funcione la interrupcion

En la rutina de interupcion me parece que debes de ponerla una etiqueta, para que pueda ser llamada cuando salte la interrupcion y sepa a donde debe de ir. Ademas debes de quitar el ultimo Return y el END.

De todas formas creo que no has leido los post que te mencionan al principio, ya que alli tienes ejemplos de lo que quieres y sobre todo de como realizar y escribir tu programa.

F.
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: Necesito ayuda Urgente Programa con el Pic16f84a mplab
« Respuesta #19 en: 14 de Diciembre de 2011, 15:52:00 »
Fijate en en el ejemplo de aqui:http://www.todopic.com.ar/foros/index.php?topic=24720.msg201407#msg201407

En el modo contador.

Respecto a mi ultimo post falta que una vez que hayas puesto el nombre de la rutina de interrupcion debes de colocar tambiem depues del org o4, goto "nombre de la interrupcion y justito antes del END colocar un= goto inicio para que tu programa se repita de forma indefinida, sino solo lo hace una vez.
Todos los días se aprende algo nuevo.

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Necesito ayuda Urgente Programa con el Pic16f84a mplab
« Respuesta #20 en: 14 de Diciembre de 2011, 15:53:20 »
Citar
perdon por la intromision,

pero el la tutina de 2minutos al final tienes puesto.

bucle
goto bucle

Con esto noo va aslir nunca de esa rutina. Deberias de sustituir ambas por la instruccion "Return"

Espero no tener osxidado mi ASM

Nandez esto esta en el ejemplo, porque al ser un ejemplo de como se usa no tiene programa principal y le pone un bucle infinito para que se quede ahi sin hacer nada, hasta que salta la interrupcion.  :lol: :lol:

Pon el programa que tienes hecho hasta ahora y lo vemos, el que ya has corregido, con lo que te dijo Fer.

Aunque es muy facil para que te tengamos que ayudar, como ande tu profe por aqui nos va a suspender a todos  :lol: :lol:


Desconectado nandez

  • PIC10
  • *
  • Mensajes: 25
Re: Necesito ayuda Urgente Programa con el Pic16f84a mplab
« Respuesta #21 en: 14 de Diciembre de 2011, 16:11:53 »
Ok.. voi a porbarlo aver... :
mira yo ahora mimos simulandolo en porteus me funciona...

Una vez que le doi al pulsador de encendido se enciendo el led on:realizado con la int_ext del rbo
una vez que hace el reastreo de los sensores si se modifica el puerto b del 4 a 7 se activa la bocina y la lampara:realizado con el cambio de estado del RB4 al RB7
y ahora pasarian 2 minutos.. y se apagaria la bocina y la lampara... pero si sigue activado algun sensor del puerto b RB4 al RB7 seguiria otros dos minutos...(ESO ES LO QUE NO M FUNCIONA..) y es necesario realizarloo asi y cre que estoi cerca entre mis apuntes y los vuestros que me habeis aconsejado...seguro que me falla algun detalle... mejor para explicarte copia y pega mi porgrama y lo modificas y me enseñas lo que as modificadoooo.... TIOO MUCHASS GRACIASS OS LO AGRADEZCO ENORMEmente QUE PERDAIS EL TIEMPO EN MI PROBLEMAAA uN SALUDOOOOO!!!

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: Necesito ayuda Urgente Programa con el Pic16f84a mplab
« Respuesta #22 en: 14 de Diciembre de 2011, 16:20:59 »
A ver Nandez:

No se que debes estar probando, pero una de dos o no nas puesto el programa completo o no ter funciona pues no veo que hayas excrito nada ni del tratamiento de la interrupcion de RBo, ni del cambio de estado de RB4 a RB7


Dentro del nombre de la interrupcion debes comprobar primero cual es el motivo de la interrupcion:

Interrupcion:
1º Compruebas si es por cambio de RB0, si es asi realizas lo que quieras y si no
2º Compruebas si es por el TMRO y realizas lo que creas oportuno y si no es por TMR0
2 Compruebas si es por el cambio en RB4 -RB7 y si no sales de la interrupcion.

F.
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: Necesito ayuda Urgente Programa con el Pic16f84a mplab
« Respuesta #23 en: 14 de Diciembre de 2011, 16:24:54 »
Fijate en la parte del codigo que te pusieron en el post numero 6, alli ves como colocar el codgo para saber que interrupcion se ha producido.


F.
Todos los días se aprende algo nuevo.

Desconectado nandez

  • PIC10
  • *
  • Mensajes: 25
Re: Necesito ayuda Urgente Programa con el Pic16f84a mplab
« Respuesta #24 en: 14 de Diciembre de 2011, 16:29:31 »
;**************************************************************
;CONTADORES
;**************************************************************
CONTA_1      EQU         0X20
CONTA_2      EQU         0X21

;************************************************************
;PLANTILLA
;************************************************************

           LIST         P=16F84A      ; Tipo de PIC
         INCLUDE         "P16F84A.INC"   ; Definiciones de los registros internos
         ORG            0X00         ; Directiva que indica donde está el
         GOTO         CONFIPUERTOS   ; Salta hasta INICIO
         ORG            05h            ; Salva vector de interrupción
         GOTO         INICIO
         
;*************************************************************
;CONFIGURACION DE LOS PUERTOS
;*************************************************************

CONFIPUERTOS:
         
         BSF            STATUS,RP0      ;SELECCIONAMOS EL BANCO 1
         BCF            TRISA,0         ;BIT 0 COMO SALIDA PUERTOA
         BCF            TRISA,1         ;BIT 1 COMO SALIDA PUERTOA
         BCF            TRISA,2         ;BIT 2 COMO SALIDA PUERTOA
         
         BSF            TRISB,0         ;BIT 0 COMO ENTRADA PUERTOB
         BSF            TRISB,4         ;BIT 4 COMO ENTRADA PUERTOB
         BSF            TRISB,5         ;BIT 5 COMO ENTRADA PUERTOB
         BSF            TRISB,6         ;BIT 6 COMO ENTRADA PUERTOB
         BSF            TRISB,7         ;BIT 7 COMO ENTRADA PUERTOB
         BCF            STATUS,RP0      ;SELECCIONAMOS EL BANCO 0
         CLRF         PORTA
;*********************************************************************
;CONFIGURACION DEL INTCON
;*********************************************************************
         MOVLW         0X9C         ;ACTIVACION DE INTERRUPCIONES
         MOVWF         INTCON         
         BCF            INTCON,T0IF      ;BANDERA INT_EXT PUESTA A CERO
         BCF            INTCON,RBIF      ;BANDERA CAMBIO DE ESTADO PUERTO B A CERO
         
;**************************************************
;ENCENDIDO DEL LED ON
;****************************************************


INICIO:


ENCENDIDO:
         BTFSS         PORTB,0         ;SI HAY UN 1 EN EL PURTOB,0 ENCENDIDO DEL LED ON
         GOTO         ENCENDIDO   
         BSF            PORTA,0         ;ENCENDIDO DEL LED ON
         
SENSORES:         

SENSOR1:                        
         BTFSS         INTCON,RBIF      ;SI ESTA ACTIVADO EL FLAG DE CAMBIO DE ESTADO EN EL PUERTOB,4-7
                                 ;SE ACTIVAN LA BOCINA Y LAMPARA
         GOTO         SENSOR1
         
         BSF            PORTA,1         ;ACTIVACION BOCINA
         BSF            PORTA,2         ;ACTIVACION LAMPARA
         RETFIE         
         
         CALL         DOSMINUTOS
         
         
         
;*****************************************************************************
;CONGIGURACION DEL OPTION
;****************************************************************************           
DOSMINUTOS:         
ESPERA:      

         BSF             STATUS, RP0        ;banco 1       
             MOVLW           B'10000111'
             MOVWF           OPTION_REG         ;pull-up's desactivadas, prescalador para TMR0 en 1:256
 
             BCF             STATUS, RP0        ;banco 0
          BCF            INTCON,RBIE
             MOVLW           d'255'
             MOVWF           CONTA_1            ;aux1 en d'255'
 
             MOVLW           d'7'
             MOVWF           CONTA_2            ;aux2 en d'7'
 
             CLRF            TMR0               ;TMR0 en d'0'
 
     
 
             BSF             INTCON, GIE         ;habilitar interrupciones globales
             BSF             INTCON, T0IE        ;habilitar interrupciones por TMR0
 
         RETURN
 
;*************************************************
 
;**** En la subrutina de interrupción por TMR0: ****
 
             BCF            INTCON, T0IF
 
             DECFSZ         CONTA_1,1
             RETFIE
         MOVLW          d'255'
             MOVWF          CONTA_1                    ;CONTA_1 en d'255'
          DECFSZ         CONTA_2,1
             RETFIE
          MOVLW          d'7'
             MOVWF          CONTA_2                    ;CONTA_2 en d'7'
          BSF            INTCON,RBIE
         BTFSS         INTCON,RBIF
         GOTO         APAGADO
         GOTO         ESPERA


APAGADO:

         BCF            PORTA,1
         BCF            PORTA,2
         
         GOTO         INICIO
         
         END


Este es mi porgrama realizadoo y con la simulacion en porteus me funciona.. pero no consigo que a los 2 minutos se apague la bocina y la lampara... pero todo lo demas si me funcionaa perfectamente.... es soloo eso....

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: Necesito ayuda Urgente Programa con el Pic16f84a mplab
« Respuesta #25 en: 14 de Diciembre de 2011, 16:35:25 »
Nandez:

Me remito a mis ultimos post.

Ahora voy a cenar y si puedo me conecto despues, sino mañana en la mañana te digo mas.
Pero por favor  haz caso:
NO se que puedes estar probando, bajo mi punto de vista con ese codigo NO te puede ni funcionar la interrupcion por cambio de estado en RB0 ni en RB4a RB7.
Ademas te falta habilitar el salto al vector de interrupciones con el:
ORG 04
goto ISR_INT(por ejemplo)
ORG05
......
......

F.
Todos los días se aprende algo nuevo.

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Necesito ayuda Urgente Programa con el Pic16f84a mplab
« Respuesta #26 en: 14 de Diciembre de 2011, 16:37:49 »
Citar
 MOVLW         0X9C         ;ACTIVACION DE INTERRUPCIONES
         MOVWF         INTCON        
         BCF            INTCON,T0IF      ;BANDERA INT_EXT PUESTA A CERO
         BCF            INTCON,RBIF      ;BANDERA CAMBIO DE ESTADO PUERTO B A CERO

No estas activando la interrupcion por TIMER0, ES EL BIT T0IE, y activas el T0IF y despues lo borras.

En vez de 0x09 seria 0xB8.

¿COMO ESTAN CONFIGURADOS LOS fuses?

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: Necesito ayuda Urgente Programa con el Pic16f84a mplab
« Respuesta #27 en: 14 de Diciembre de 2011, 16:41:31 »
¿COMO ESTAN CONFIGURADOS LOS fuses?

Ademas falta eso, que es conveniente colocarlo en programa aunque hay algunos grabadores que no lo necesitan-

me reitero. Si lees el hilo que te indicaron, aunque pierdas un poco de tiempo, seguro que ahora no tendrias estos problemillas.

F.
P.D.. hasta mañana.....................
Todos los días se aprende algo nuevo.

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Necesito ayuda Urgente Programa con el Pic16f84a mplab
« Respuesta #28 en: 14 de Diciembre de 2011, 17:00:03 »
Citar
Ademas falta eso, que es conveniente colocarlo en programa aunque hay algunos grabadores que no lo necesitan-

me reitero. Si lees el hilo que te indicaron, aunque pierdas un poco de tiempo, seguro que ahora no tendrias estos problemillas.

F.
P.D.. hasta mañana.....................

Si, es cierto.

Tienes un tinglado montao de cojones.


Citar
Ahora voy a cenar y si puedo me conecto despues, sino mañana en la mañana te digo mas.
Pero por favor  haz caso:
NO se que puedes estar probando, bajo mi punto de vista con ese codigo NO te puede ni funcionar la interrupcion por cambio de estado en RB0 ni en RB4a RB7.
Ademas te falta habilitar el salto al vector de interrupciones con el:
ORG 04
goto ISR_INT(por ejemplo)
ORG05

Esto tambienes cierto.
Se que tienes prisa por entregarlo, pero se trata de que lo hagas tu, tu profe seguro que anda por aqui y se esta escojonando.

Lo mire en MPLAB y lo primero ya salta el WDT, por es tienes que poner los FUSES. Por ejemplo asi:

LIST   P=16F84A,            ; usar PIC 16F84A
   #include <p16f84A.inc>

   __CONFIG _CP_OFF&_PWRTE_ON&_WDT_OFF&_XT_OSC


Desconectado nandez

  • PIC10
  • *
  • Mensajes: 25
Re: Necesito ayuda Urgente Programa con el Pic16f84a mplab
« Respuesta #29 en: 14 de Diciembre de 2011, 18:30:25 »
Tio no puedo tener tanto lio por que l porfesor esta viendo lo que estoi haciendoo y ma so mens esta bien.. los demas de clase los an exo algunos con retardos.. que es mas facil pero mas largo tb y no creo que ande por aki... lo mismoo siii ejejej weno de todas formas muchas graciass ;)