incorporo dos rutinas mas, que trabajan bien sin interrupcion
/* Enviar un solo caracter por el puerto serie */
void SCI_enviar1Caracter( unsigned char caracter ) {
while ( SCS1_SCTE == 0 ){
}
SCDR = caracter; // Envia el caracter */
}
/* Enviar una cadena de texto por el puerto serie */
void SCI_enviarnCaracteres( const char *cad )
{
unsigned char posCar = 0;
while ( cad[ posCar ] != 0 ) {
SCI_enviar1Caracter( cad[ posCar ] );
posCar++;
}
}
Pero cuando quiero leer varios caracteres, no me trabaja
supongo una cadena de 5 caracteres
unsigned char bufferChrStr[6]= "00000";
/* Leer n caracteres por el puerto serie */
void SCI_recibirnCaracteres( void ) {
unsigned char caracterRecibido, cont = 0, cont1 = 0;
for ( cont1 = 0; cont1 <= 6; cont1++ ){
bufferChrStr[ cont1 ] = 0; // inicializa la cadena toda en 0
}
for ( cont = 0; cont <= 6; cont++ ) {
caracterRecibido = SCI_recibir1Caracter();
if( caracterRecibido != 13 ) { // mientras no se oprima enter caracter de finalizacion de cadena
bufferChrStr[ cont ] = caracterRecibido; // llena el bufer
cont = 7;
}
}
}
Que código alternativo han trabajado para capturar n caracteres del serial
gracias nuevamente