Hola a todos,
estoy realizando la sincronización de una serie de nodos arduino y para ello, voy a usar interrupciones. La idea es la siguiente:
- Un nodo centralizado genera pulsos de sincronización cada x tiempo
- Otros dos nodos detectarán esta interrupción y, procederán a setear el registro TIMSK0 a 0.
Mi pregunta es la siguiente, ¿es posible poner a 0 TIMSK durante la interrupción? He leído que todas las funcionalidades de tiempos se deshabilitan, y no sé si el uso de los registros es una de ellas.
El código sería el siguiente:
int pin = 5;
volatile boolean estado = HIGH;
extern volatile unsigned long timer0_overflow_count;
unsigned long ticks, microseconds1, microseconds2;
void setup()
{
Serial.begin(57600);
pinMode(pin, OUTPUT);
//attachInterrupt(0, parpadeo, LOW);
}
void loop()
{
digitalWrite(pin, estado);
microseconds1=micros();
estado=HIGH;
microseconds2=micros();
Serial.println(microseconds2-microseconds1);
}
void parpadeo()
{
estado=LOW;
TIMSK=0;
}