Pages: [1]   Go Down
Author Topic: Leer el puerto serie en el mismo instante que llegan los datos  (Read 1244 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 38
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola a todos.

Me gustaría poder implementar un código que leyese los datos en el puerto serie, en el mismo momento que estos llegan (es decir haciendo uso de alguna interrupción).

Estoy probando con este código, usando la interrupción asociada al pin0 de Rx. El problema es que se pierde la primera letra (probadlo con varias). 

¿Como puedo recuperar el carácter perdido? (en verdad el carácter queda en buffer, se pierde una interrupción supongo, por que al escribir un espacio blanco después aparece el carácter perdido)
¿Podría alguien echarme una mano u orientarme?

Saludos


#include <stdlib.h>
#include <string.h>

void setup() {
    Serial.begin(9600);

//******************
    cli();
    PCICR |= (1 << PCIE2);
    PCMSK2 = B00000001;
    sei();
//******************
Serial.println("Ok");
}

void loop() {
 
}

ISR(PCINT2_vect) {//PCINT2_vect
  char aux;
        PCMSK2 = B00000000;
       
        if (Serial.available() > 0) {
              aux = Serial.read();
              Serial.println(aux);
        }
     PCMSK2 = B00000001;
  //   
}
Logged

Pages: [1]   Go Up
Jump to: