Hola amig@s.
En estos momentos estoy realizando mi PFC y me he encotradoc on un problemilla.
Tengo que enviar tramas a mi pic (PIC 18F252) y para ello uso la funcion kbhit(). El problema viene por que parece que se me llena el buffer, y el pic, sigue mostranso por pantalla tramas de estado, pero no ejecuta ninguna instruccion de las enviadas.
La parte del codigo dnd creo que esta el problema es esta:
void recepcion_tramas2(){
unsigned int16 iCon=0;
//putc('E');
output_high(PIN_B6);
if(iTramaAcabada==VERDADERO){
// putc('S');
// putc('2');
return;
}
while(kbhit() && iCon < TAM_BUFFER ){
iCon++;
//se pone una bandera
//putc('HOLA');
//buffer lleno desechamos lo cogido
if( iIndiceVector >= TAM_BUFFER ){
//n=0;
iTramaAcabada=FALSO;
iIndiceVector=0;
iTramaIniciada = FALSO;
break;//si se da este caso, que salga de la funcion
}
//lectura de puerto serie
vRecibir[iIndiceVector]=getc();
//bandera2
// putc('99\n');
putc(vRecibir[iIndiceVector]);
//putc(')');
//caracteres++;
//lectura inicio trama
if(iIndiceVector == 0 &&
vRecibir[iIndiceVector] == '$'){
iTramaIniciada = VERDADERO;
}
//lectura fin trama
if(vRecibir[iIndiceVector]=='#'){
vRecibir[iIndiceVector+1]='\0';
//n=i;
iTramaAcabada=VERDADERO;
iIndiceVector=0;
iTramaIniciada = FALSO;
output_low(PIN_B6);
break;
}
//guardamos trama
if(iTramaIniciada == VERDADERO){
iIndiceVector++;
}
}
//putc('S');
//putc('1');
}
Cabe decir, que el tamño del buffer lo he limitado a 80 caracteres.
Muchas gracias por vuestra ayuda!!!