Lancer une mesure à intervalle régulier ?

Bonsoir,

Je souhaite appeler ma routine de mesure de température toutes les minutes,
non pas à partir de mon programme principal, mais à partir d'une interruption
temps réel. Avec mon micro Motorola, l'appel se faisait comme ceci :

#pragma interrupt_handler realtime
void realtime()
{
...
...

Je ne trouve pas comment faire avec Arduino.
Pouvez-vous m'éclairer ?

Merci.

toutes les milisecondes par timer...

Gozaki

Bonjour,

Il est possible d'utiliser MsTimer2 :

MsTimer2::set(ms, fonction);

Comme dans cet exemple :

#include <MsTimer2.h>
// Switch on LED on pin 13 each second

void flash() {
  static boolean output = HIGH;  
  digitalWrite(13, output);
  output = !output;
}
void setup() {
    pinMode(13, OUTPUT);
  
  MsTimer2::set(250, flash); // ms periode
  MsTimer2::start();
}
void loop() {
  // fait autre chose en attendant
  }

En espérant que cela vous soit utile.

Salutations

@Gozaki,
Sympa ta page, mais pas évidente ! Je vais prendre le temps
de lire et de comprendre.

@Bernarduino
Cette solution de MsTimer2 semble parfaite. Quelle est la limite
du nombre de ms ? Possible de lancer un process tous les 1, ou
10, ou 60 secondes par exemple ?

Merci pour les liens en tous les cas.

It's called MsTimer2 because it "hardcodes" a resolution of 1 millisecond on timer2.

Bonsoir,

Testé avec 60 secondes ... OK

Salutations

Je suis en déplacement quelques jours, je teste tout cela ce week-end.
Merci encore !