void __attribute__((__interrupt__)) _U2RXInterrupt(void)
{
IFS1bits.U2RXIF = 0; // borra bit señalador de interrupción de recepción
pulsado = ReadUART2();
datos_uart[indice_datos]=pulsado;
indice_datos++;
}
/*FIN INTERRUPCIÓN UART2*******************/
void configura_uart(void)
{
unsigned int baudvalue; /* Pone el valor del registro baud */
unsigned int U2MODEvalue; /* Pone el valor del registro de configuración de la uart*/
unsigned int U2STAvalue; /* Modos de interrupción de TX y RX*/
__C30_UART=2; //Le digo que voy a utilzar la usart2
CloseUART2(); /* Apaga el modulo UART2 */
/* Configura las interrupciones de la UART2, transmisión y recepción */
ConfigIntUART2(UART_RX_INT_EN & UART_RX_INT_PR6 & UART_TX_INT_DIS & UART_TX_INT_PR2);
/* Configura el modulo UART2 para transmitir con 8 bits de datos y uno de parada */
baudvalue = 191; //9600 baudios
U2MODEvalue = UART_EN & UART_IDLE_CON & UART_RX_TX &
UART_DIS_WAKE & UART_DIS_LOOPBACK &
UART_DIS_ABAUD & UART_NO_PAR_8BIT &
UART_1STOPBIT;
U2STAvalue = UART_INT_TX_BUF_EMPTY &
UART_TX_PIN_NORMAL &
UART_TX_ENABLE & UART_INT_RX_CHAR &
UART_ADR_DETECT_DIS &
UART_RX_OVERRUN_CLEAR;
OpenUART2(U2MODEvalue, U2STAvalue, baudvalue); //Inicializa la uart
}
for(i=0;i<=3;i++)
{
while (DataRdySPI1()==0); // el registro SPIRB (SPIBUF) está vacio
num[i]=getcSPI1();
}