unsigned char data;
int a;
char *buffer;
char r1[14],pas1[4],pas2[4],pas3[4];
int i,i1,i2,i3,i4,len,p,p1;
unsigned long newpaso1,newpaso2,newpaso3,oldpaso1,oldpaso2;
int ia,ib,ic,v_pap;
char j=0,cual,brazo_listo2=1;
//volatile bit brazo_listo2;
long pass1=3200,pass2=800,k=0,tmr1=0,tmr0=0;
long tmr1,tmr3,pap1[3],pap2[3];
long h1=0,h2=0;
bool serialA_listo=false,brazo_listo,recibi_a=false,llenar_pap=true;
void interrupt interrupcionDeAlta(void)
{
if(PIR1bits.
TMR1IF==1){ printf("hola"); //este printf solamente lo puse para comprobar donde estaba el problema PIR1bits.TMR1IF=0;
if(h2<pap1[j]*2){
LATBbits.LATB0=!LATBbits.LATB0;
WriteTimer1(tmr1);
h2++;
brazo_listo2=2;}//en el main defino "brazo_listo2=1" pero cuando inicia el programa me cambia este valor automaticamente a 2 aunque la condicion "PIR1bits.TMR1IF==1" no se cumpla. por eso puse el printf"hola" para verificar que el problema esta ahi
//else
if(h2==pap1[j]*2){
pap1[j]='e';brazo_listo2=1;j++;
if(j==3)j=0;
}
}
if(PIR2bits.TMR3IF==1){
PIR2bits.TMR3IF=0;
if(h1<pap2[j]*2){
LATBbits.LATB2=!LATBbits.LATB2;
WriteTimer3(tmr3);
h1++;
brazo_listo2=2;}
//else
if(h1==pap2[j]*2){
pap2[j]='e';brazo_listo2=1;j++;
if(j==3)j=0;
}
}
if(PIR1bits.RCIF==1){
PIR1bits.RCIF=0;
while(!DataRdyUSART());
data = getcUSART();
getsUSART(r1,data);
for(i2=0;i2<data;i2++){if(r1[i2]=='a') recibi_a=true;}
}
}
void putch(char c){
while(!TXIF) continue;
TXREG = c;
}
void main(void) {
TRISB=0;
i=0,i1=0,i2=0,i3=0;
PIR1bits.TMR1IF=0;PIR2bits.TMR3IF=0;
INTCONbits.PEIE=1;
INTCONbits.GIE=1;
OpenUSART(USART_TX_INT_OFF &USART_RX_INT_ON &USART_ASYNCH_MODE &
USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_HIGH, 25);//brgh=25 => 48mhz
while(BusyUSART());
OpenTimer1( TIMER_INT_ON & T1_16BIT_RW & T1_SOURCE_INT & T1_PS_1_2 & T1_OSC1EN_ON & T1_SYNC_EXT_ON );
OpenTimer3( TIMER_INT_ON & T3_16BIT_RW & T3_SOURCE_INT & T3_PS_1_2 & T3_SYNC_EXT_ON );
pap1[0]='e';pap2[0]='e'; pap1[1]='e';pap2[1]='e'; pap1[2]='e';pap2[2]='e'; //pongo como "empty" a estos valores para despues rellenarlos en la funcion "pedir_pap"
oldpaso1=0;oldpaso2=0;
h1=0;h2=0;
}
}