Pages: [1]   Go Down
Author Topic: Modificar registros durante una interrupción externa  (Read 679 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 26
Querer es poder!!!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:

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

Pages: [1]   Go Up
Jump to: