Hola mi problema es el siguiente, la parte del código importante es:
#include <p30f4013.h>
#include <uart.h>
#include <timer.h>
_FOSC(CSW_FSCM_OFF & XT_PLL4);
_FGS(CODE_PROT_OFF);
_FWDT( WDT_OFF);
_FBORPOR(PBOR_OFF & MCLR_DIS & PWRT_OFF) ;
void CONFIG_interrups(void) {
/*********************************************************************************
* Habilito interrupciones de recepción y transmisión
* en ambas UARTS y la del timer1.
* Prioridad máxima para todas. Orden que sigue:
* T1, U1RX, U1TX, U2RX, U2TX
*********************************************************************************/
INTCON1bits.NSTDIS=1; //habilito el anidamiento de interrupciones
ConfigIntTimer1(T1_INT_PRIOR_7 & T1_INT_ON);
ConfigIntUART1(UART_RX_INT_EN & UART_RX_INT_PR6 & UART_TX_INT_EN & UART_TX_INT_PR6);
ConfigIntUART2(UART_RX_INT_EN & UART_RX_INT_PR6 & UART_TX_INT_EN & UART_TX_INT_PR6);
}
int main (void) {
CONFIG_interrups();
T1CONbits.TON = 1;
while(1){
} return 1;
}
Pero la última instrucción que pongo en CONFIG_interrups() siempre me deshabilita las interrupciones de ese periférico, da igual cual sea, sin embargo la prioridad la pone bien (esto lo estoy viendo porque, tras comprobar que nunca interrumpe estoy ejecutando mi programa paso a paso)
¿alquien sabe a que se debe este error?
Muchas gracias