Go Down

Topic: Lancer une mesure à intervalle régulier ? (Read 2200 times) previous topic - next topic

kafifi

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 :
Code: [Select]
#pragma interrupt_handler realtime
void realtime()
{
...
...


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

Merci.

Gozaki

http://www.laboelectronique.be/ardtimer.html

toutes les milisecondes par timer...

Gozaki

Bernarduino

[size=12]Bonjour,

Il est possible d'utiliser MsTimer2 :[/size]
Code: [Select]
MsTimer2::set(ms, fonction);

[size=12]Comme dans cet exemple :[/size]

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

kafifi

@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.

B@tto

Quote
It's called MsTimer2 because it "hardcodes" a resolution of 1 millisecond on timer2.
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

Bernarduino

Bonsoir,

Testé  avec  60 secondes ... OK

Salutations

kafifi

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

Go Up