Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

10/11/2012 #1

Avatar de dragon33

Problema con archivo .INC
A ver si alguien me puede ayudar. Mirad, tengo un programa principal que se dedica a otros menesteres, al activar un pulsador se genera una interrupción que deja en suspenso el programa principal y acude a otro que me genera una señal de 40Khz en el pin RB0. Pues bien, ese programa que me genera la señal lo tengo en un "INCLUDE" .INC y al compilarlo me da problemas, os dejo el .INC para que me digais donde está el fallo.



PD: le he cambiado la extensión de .INC a .TXT para poder subirlo.
12/11/2012 #2


Que problemas te genera?
Con que programa lo compilas?
12/11/2012 #3

Avatar de dragon33

juan47 dijo: Ver Mensaje
Que problemas te genera?
Con que programa lo compilas?

Resuelto el fallo al compilar (USO EL MPASWIN 5.2), pero ahora no me funciona. El programa debiera hacer lo siguiente:

- Muestra el número 8 en display si no se activa el interruptor de puerta RB0
- Si se activa el interruptor se genera una interrupción (valga la redundancia)
se borra el número 8 y se genera una señal de 40Khz en patita RB1 la cual es audible en un buzzer.
- Se chequea el estado de PORTB,0 para ver si se puede salir de la interrupción.
- Si abrimos el interruptor finaliza la interrupción y vuelve el 8 al display.

He denominado al archivo 2_interrupciones porque simultaneamente se producen dos interrupciones, una por activación de RB0 y otra por desbordamiento del TMR0 para generar los 40Khz.

Me da fallo, os dejo el archivo de PROTEUS y los .HEX .INC y .asm para ver si me podeis ayudar.
Archivos Adjuntos
Tipo de Archivo: zip 2_INTERRUPCIONES.zip (32,1 KB (Kilobytes), 7 visitas)
12/11/2012 #4


En el archivo .INC cambias la configuracion TRISB como salidas

cuarenta_khz bsf STATUS,RP0 ;Selecciona banco 1
clrf TRISB ;Puerto B salidas menos RB0 entrada.
movlw b'00000001' ;Prescaler on, reloj interno, divide por 4(01)8(010)16(011)
movwf OPTION_REG
bcf STATUS,RP0 ;Selecciona banco 0

No te aconsejo tener una interrupcion dentro de otra, si es aconsejable el preguntar cual es el motivo de la interrupcion y trabajar sobre ella

Para generar el tono no te hace falta tener interrupcion sobre el TMR0, solamente tienes que preguntar en el programa si ya se ha desbordado junto con el estado de la puerta

No tienes ningun registro con el nombre CARGA_TONO sinembargo aparece esta instruccion
movwf CARGA_TONO
12/11/2012 #5

Avatar de dragon33

He resuelto esos dos detalles juan47, pero sigo con errores me da "Stack Overflow pushing return address of interrupt" al ejecutar con el ISIS.
13/11/2012 #6


Como bien te dice se esta desbordando la pila y te da ese mensaje
Yo quitaria la interrupcion por TMR0, ya que llegar al desbordamiento e iniciar una nueva interrupcion produciendo el llenado de la pila y tambien cargando de nuevo los registros donde guardas W y STATUS
13/11/2012 #7

Avatar de dragon33

¿No existe forma de ejecutar dos interrupciones?.
13/11/2012 #8


Mira este hilo
Modo de usar las interrupciones en el 16f84 en ensamblador
Te da alguna solucion para ello
14/11/2012 #9


Igual te ha defraudado un poco el tema que propuse?
Es bastante dificultoso el hacer dos interrupciones en una,tal y como propones. Pero realmente solo hay una manera de generar la interrupcion, puesto que si no tienes GIE, que es la interrupcion general activada, no ocurrira ninguna interrupcion y la interrupcion general siempre empieza en el vector de programa 0x04
Despues de ocurrir la interrupcion general, se debe preguntar ¿cual fue el motivo de ella?, y tratar el evento desarrollando el concepto que quieras dar
14/11/2012 #10

Avatar de dragon33

Gracias Juan27 por tus consejos.
15/11/2012 #11


Yo te agradeceria que espusieras tus dudas y tus logros para asi enriquecer mas a todos
15/11/2012 #12

Avatar de dragon33

Lo haré no lo dudes.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.