Go Down

Topic: Modificar registros durante una interrupción externa (Read 853 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy