Go Down

Topic: Modificar registros durante una interrupción externa (Read 788 times) previous topic - next topic

kerbero

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:
Code: [Select]


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;
}

Go Up