Autor Tema: no se activa la interrupcion  (Leído 2150 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Ricardux

  • PIC10
  • *
  • Mensajes: 19
no se activa la interrupcion
« en: 15 de Mayo de 2014, 13:22:54 »
Buenas, estoy trabajando con las dos uarts en dspic30f4013, y comunicandome entre dos robots con xbee serie 1.
El problema consiste en que al usar las dos uarts , no se me activa la interrupcion de la uart1. He tratado con lo de priorizar las interrupciones pero no se que es lo que sucede.
mi tarjeta pide datos a los encoders de mi irobot x la uart2 haciendo un control odometrico y al tiempo informa su posicion por la uart1, al mismo tiempo debe escuchar al otro que  le esta enviando las coordenadas a donde deseamos ir. Pues al parecer los robots envian los datos xke los veo en mi pc con otra xbee, pero nunca veo el string que renvio en mi codigo cuando se active la interrupcion de la xbee. Adjunto parte del codigo relacionado con la duda. intente lo de priorizar pero dio lo mismo.
Código: [Seleccionar]
#include <30F4013.h>
#include "oi.h"
#include "math.h"
#include "string.h"
#include "stdlib.h"
#define pi 3.1416
#define al 258
#FUSES NOBROWNOUT               //No brownout reset
#fuses HS2_PLL8, NOWDT, NOPROTECT,  NOWRT,  NOWDT, NOPROTECT,  NOWRT

//!#device ICSP=1
#use delay(clock=40MHz,crystal=10MHz)

#use rs232(UART2, baud=57600,parity=N,bits=8, stream=UART_PORT2)
#use rs232(UART1, baud=57600,parity=N,bits=8, stream=UART_PORT1)
#priority INT_RDA, INT_RDA2

#INT_RDA
void  rda_isr(void)  // interrupcion uart 1
{

  strcpy(subc,"prueba");
  fputs(subc,UART_PORT1);



 


}
#INT_RDA2
void  rda2_isr(void)
{
d=fgetc(UART_PORT2);
         de=fgetc(UART_PORT2);
         phi=fgetc(UART_PORT2);
       phe=fgetc(UART_PORT2);
}

void main() {
enable_interrupts(INT_RDA2);
enable_interrupts(INT_RDA) ;
enable_interrupts(INTR_GLOBAL);



 

anything