TODOPIC
Simuladores, editores de PCB, etc => Simuladores de circuitos => Proteus ISIS => Mensaje iniciado por: gustav03 en 31 de Diciembre de 2004, 10:29:00
-
Hola amigos !!
tengo un problema con el Proteus
.
Resulta que simulé el programa en MPLAB y anda bien pero en Proteus simula bien pero no entra a las rutinas de interrupciones del PIC16F84A .
Alquien sabe que puede estar pasando ? ![Helado Helado]()
-
Si no entra en las rutinas no debe ir muy bien que digamos. Especifica concretamente de que va el programa y que es lo que te pasa.
Un saludo
-
Bueno el problema es que tengo una rutina que se ejecuta con una interrupcion en la puerta RB0 del PIC este pin esta configurado cono entrada las interren INTCON estan activas igual que los flancos en OPTION .La idea es que cada cambio de estado en la entrada del pin RB0 se ejecute la interrupcion (rutinainterr)
El programa simula bien en MPLAB IDE 6.3 entra a las rutinas de interrup. mediante la simulasion de RB0 (incluso las interrupciones con RB4..RB7 andan bien ). Implemente un diseño en Proteus 6.3 para simularlo al pin RB0 le conecte una resistencia a +V y un pulsador a masa .Cuando corro la simulacion presiono el boton y no pasa nada en la salida del pin RA1 (configurado como salida que prende un led) . Esto del proteus esta muy bueno pero .....
Ayuda !!
-
Que onda Gustav03
Escrito originalmente por gustav03
Bueno el problema es que tengo una rutina que se ejecuta con una interrupcion en la puerta RB0 del PIC este pin esta configurado cono entrada las interren INTCON estan activas igual que los flancos en OPTION .La idea es que cada cambio de estado en la entrada del pin RB0 se ejecute la interrupcion (rutinainterr)
El programa simula bien en MPLAB IDE 6.3 entra a las rutinas de interrup. mediante la simulasion de RB0 (incluso las interrupciones con RB4..RB7 andan bien ). Implemente un diseño en Proteus 6.3 para simularlo al pin RB0 le conecte una resistencia a +V y un pulsador a masa .Cuando corro la simulacion presiono el boton y no pasa nada en la salida del pin RA1 (configurado como salida que prende un led) . Esto del proteus esta muy bueno pero .....
Ayuda !!
Supongo (por el conexionado del portb0) que no usas pullups, si es asi cheka que este como entrada rb0(0 logico sin pullups), ademas la resistencia de pullup deberia de ir hacia tierra y el boton hacia voltaje(pruebalos asi) ,que dentro del ISR haga un chekeo para ver cuando haya cambiado el estado de la interrupcion
para no hacer dos o tres mas por los rebotes) con un btfXX portb.0, no estria por demas(si avs a usar mas interrupciones, ) que pongas un chekeo de si es esa la interrupcion de portb.0(un btfXX Intcon.1). Si requieres el cambio de portb (para habilitar la interrupcion ) AL REVES(de 1 a cero logico) activa las pullups internas y conectas el pushbuton ahora si a tierra.
Salu2
-
Es por lo que comentas casi seguro que el problema es de software, o bien de hardware (mal conexionado del pulsador, dependiendo de lo que este esperando el PIC, un 0 ó un 1)
Pega el programa y le pegamos un vistazo.
Un saludo
-
no puedo adjuntar los archivos me dice que que no hay estacio el archivo tiene 117K :5]
-
Pega el codigo pana Gustav03, asi podemos revizar el codigo,por otro lado probaste lo que te comente en el post anterior?
Salu2
-
aca esta lo que estoy intentando hacer .La interrupcion INTE no se activa pulsando el boton .En cambio la RBIE si que es la del teclado y el pulso proviene del 74LS139 que es el que barre las filas del teclado .Bueno el problema es que en la puerta RB0 del PIC (configurado como entrada)
en el pin RB0 tengo un pulsador a +V
ahora tengo conectadas las resistencias internas para PORTB y el flanco (1)
BANK1
movlw b"11010000"
movwf OPTION_REG
movlw b"10011000"
movwf INTCON
BANK0
por otro lado se activa la interrupcion TOIE y como ven no esta configurada en mu ejemplo de arriba
-
Que onda pana,
Escrito originalmente por gustav03
aca esta lo que estoy intentando hacer .La interrupcion INTE no se activa pulsando el boton .En cambio la RBIE si que es la del teclado y el pulso proviene del 74LS139 que es el que barre las filas del teclado .Bueno el problema es que en la puerta RB0 del PIC (configurado como entrada)
en el pin RB0 tengo un pulsador a +V
ahora tengo conectadas las resistencias internas para PORTB y el flanco (1)
BANK1
movlw b"11010000"
movwf OPTION_REG
movlw b"10011000"
movwf INTCON
BANK0
por otro lado se activa la interrupcion TOIE y como ven no esta configurada en mu ejemplo de arriba
........Tienes deshabilitada las pullups, tendrias que conectar la resitencia(10k) de tierra a portb.0 y el push de vcc a portb.0, tienes mal configurado el registro INTCON:
movlw b"10010000" <--asi deberia de funcionarte
movwf INTCON
de la forma que posteaste,tenias activada la interrupcion por cambio de estado en los pines del puerto b (7 : 4).
Prueba primero con estos cambios, y seguimos depurando tu problema.No te olvides al salir de la ISR borrar el flag de esta interrupcion (cuando recien entras al ISR acuerdate de guardar el FSR,status,etc.. y deshabilitar las interrupciones o la interrupcion en especfifico) , y posteriormente volver a restaurar el fsr,etc..
Salu2 pana
-
gracias gente buena !!! pero yo me rindo me voy a pasar a pic c
-
jejeje, Perfecto pana.
Un abrazo