TODOPIC
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
. ¿Perdiste tu
email de activación
?
1 Hora
1 Día
1 Semana
1 Mes
Siempre
Ingresar con nombre de usuario, contraseña y duración de la sesión
Este tema
Este sub-foro
Todo el foro
Google
Inicio
Ayuda
Buscar
Ingresar
Registrarse
TODOPIC
»
Microcontroladores PIC
»
Lenguaje C para microcontroladores PIC
(Moderadores:
pikman
,
pocher
,
vszener
,
Suky
) »
Interrupciones en PIC16F15324 (Solucionado)
« anterior
próximo »
Imprimir
Páginas: [
1
]
Ir Abajo
Autor
Tema: Interrupciones en PIC16F15324 (Solucionado) (Leído 1420 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Picuino
Moderadores
DsPIC33
Mensajes: 5883
Interrupciones en PIC16F15324 (Solucionado)
«
en:
07 de Marzo de 2020, 06:08:22 »
No consigo que funcionen las interrupciones en el PIC16F15324 porque al llamar a la rutina de interrupción se produce un desbordamiento de pila y el micro se resetea.
El programa que estoy probando es muy sencillo:
Código: C
#include <xc.h>
// PIC16F15324 Configuration Bit Settings
// CONFIG1
#pragma config FEXTOSC = HS // External Oscillator mode selection bits (Oscillator not enabled)
#pragma config RSTOSC = EXT4X // Power-up default value for COSC bits (HFINTOSC = 32MHz)
#pragma config CLKOUTEN = OFF // Clock Out Enable bit (CLKOUT function is disabled; i/o or oscillator function on OSC2)
#pragma config CSWEN = ON // Clock Switch Enable bit (Writing to NOSC and NDIV is allowed)
#pragma config FCMEN = ON // Fail-Safe Clock Monitor Enable bit (FSCM timer enabled)
// CONFIG2
#pragma config STVREN = ON // Stack Overflow/Underflow Reset Enable bit (Stack Overflow or Underflow will cause a reset)
/***************************
INTERRUPT SERVICE ROUTINE
***************************/
void
interrupt isr
(
void
)
{
PIR4bits.
TMR1IF
=
0
;
LATCbits.
LATC2
=
0
;
}
/***************************
Main function
***************************/
void
main
(
void
)
{
// Init CPU
INTCONbits.
PEIE
=
1
;
INTCONbits.
GIE
=
1
;
PIE4bits.
TMR1IE
=
1
;
// Oscillator in LATA2
TRISCbits.
TRISC2
=
0
;
while
(
1
)
{
LATCbits.
LATC2
=
1
;
PIR4bits.
TMR1IF
=
1
;
}
}
¿Alguna idea de porqué no funciona?
Un saludo.
«
Última modificación: 07 de Marzo de 2020, 11:53:53 por Picuino
»
En línea
Picuino
Moderadores
DsPIC33
Mensajes: 5883
Re:Interrupciones en PIC16F15324
«
Respuesta #1 en:
07 de Marzo de 2020, 06:15:06 »
Esta es la señal que consigo en C2:
NewFile0.png
(8.88 kB, 640x468 - visto 242 veces)
En línea
Picuino
Moderadores
DsPIC33
Mensajes: 5883
Re:Interrupciones en PIC16F15324
«
Respuesta #2 en:
07 de Marzo de 2020, 11:40:00 »
He reinstalado el compilador XC8 en su última versión.
El problema se mantiene.
En línea
Picuino
Moderadores
DsPIC33
Mensajes: 5883
Re:Interrupciones en PIC16F15324
«
Respuesta #3 en:
07 de Marzo de 2020, 11:53:42 »
Ya está resuelto.
He creado un proyecto nuevo en MPLABX y he copiado el código de main.c en el nuevo proyecto.
Por alguna razón ahora funciona sin problemas.
Un saludo.
En línea
Yoshua
PIC16
Mensajes: 207
Re:Interrupciones en PIC16F15324 (Solucionado)
«
Respuesta #4 en:
07 de Marzo de 2020, 15:16:45 »
¿En el proyecto viejo, el micro lo seteaste antes o despues de crear el proyecto?
Se me ocurre que podria haber algun error en el compilador en esa etapa.
En línea
Picuino
Moderadores
DsPIC33
Mensajes: 5883
Re:Interrupciones en PIC16F15324 (Solucionado)
«
Respuesta #5 en:
07 de Marzo de 2020, 18:27:05 »
Puede ser. Habia un problema en la configuración del proyecto. El caso es que me ha llevado bastante tiempo encontrar el error porque pensaba que estaba en el código.
Saludos.
En línea
Imprimir
Páginas: [
1
]
Ir Arriba
« anterior
próximo »
TODOPIC
»
Microcontroladores PIC
»
Lenguaje C para microcontroladores PIC
(Moderadores:
pikman
,
pocher
,
vszener
,
Suky
) »
Interrupciones en PIC16F15324 (Solucionado)