Buenas!!
Utilizo Arduino Mega 2560.
No sé por qué (obvio.. sino no escribiría estas lineas.. jeje), cuando utilizo una sola interrupcion (INT4 en el pin2), el programa me funciona a la perfeccion, el problema me viene cuando defino la segunda interrupcion (INT5 en pin3). El Monitor Serial deja de funcionar =(
Envío un comando desde Arduino y el chip me contesta. Tengo que calcular el tiempo que hay entre dos interrupciones. Guardo ese tiempo en un array y al pulsar un boton, me muestra el resultado.
Como decía, individualmente me funciona bien, pero cuando meto una segunda interrupcion, para leer dos chips distintos, el programa carga bien pero el monitor serie no funciona.. Aunque aqui no lo escriba, "z, zz", y el resto de variables que pueda haber están declaradas en el código.
unsigned long tiempoInt4 [200]; // para guardar el tiempo de todas las interrupciones de la respuesta en pin2
unsigned long tiempoInt5 [200]; // para guardar el tiempo de todas las interrupciones de la respuesta en pin3
void setup(){
EICRB = 0×01; //INT4, trigger en cualquier flanco
EIMSK = 0×10; //Activar INT4. Sin añadir el siguiente, todo va bien
EIMSK |=(1<<INT5); // Esta es la que he añadido a posteriori , Activar INT5 (o eso creo...): Aunque al añadirlo; me hunde
pinMode (2, INPUT);
pinMode (3, INPUT);
Serial.begin(115200);
Serial.println ("puerto serie OK");
beep();//pita un buzzer para saber que el programa está preparado
}
void loop(){
// aquí va el programa que pulsando un boton envio un comando y seguido, empiezo a recibir la respuesta
// y con el otro boton me muestra lo que hay guardado en los arrays.
//No lo pongo porque es mas largo que un dia sin pan.
}
ISR(INT4_vect) {
tiempoInt4[z]=micros();
z++;
}
ISR(INT5_vect) {
tiempoInt5[zz]=micros();
zz++;
}
Lo que decia.. si no incluyo nada de la INT5, me funciona perfecto, pero incluyendo ésta, ya no puedo monitorizar nada por serie. El buzzer pita, con lo que entiendo que el programa carga bien.
Lo que pienso es que al activar INT5 (concretamente la 5), ésta no permite que haya comunicación por serie... no seee!! son conjeturas, que no he podido afirmar ni negar buscando en la red, ya que no he encontrado respuesta alguna...
Muchas gracias por adelantado!!