déclencher un chrono par une interruption

Bonjour à tous,
Je souhaite faire fonctionner un chronomètre en utilisant une interruption. Or, parmi les nombreux exemples disponibles, je n'ai trouvé que des chronos fonctionnant dans la boucle principale. D'après ce que j'ai lu, la fonction millis ne fonctionne pas dans une interruption, j'imagine que ça doit être pour ça. J'ai trouvé un code ici qui fait ce que je veux et j'ai essayé de le retourner dans tous les sens mais je n'y arrive pas.
Je suis également tombé sur la bibliothèque stopwatch: Arduino Playground - StopWatchClass
qui semblait plus simple mais ça déconne pour moi quand je fais ça: (exemple très basique)

#include <StopWatch.h>
#include <LiquidCrystal.h>
unsigned long lap = 0;
StopWatch sw_millis;    // MILLIS (default)
StopWatch sw_micros(StopWatch::MICROS);
StopWatch sw_secs(StopWatch::SECONDS);


LiquidCrystal lcd(12, 11, 9, 8, 7, 6);

void setup()
{
    lcd.begin(16, 2);
    lcd.setCursor(0, 0);
    lcd.print("Start!           ");
    Serial.begin(9600); 
    digitalWrite(1,HIGH);
    digitalWrite(0,HIGH);
    digitalWrite(2,HIGH);
    attachInterrupt(1, chrono, FALLING);
    
}

void loop()
{

}

void chrono()
{
sw_secs.stop();
lap=sw_secs.elapsed();
lcd.setCursor(0, 1);
lcd.print(lap);
sw_secs.reset();
sw_secs.start();


}

en gros je veux qu'à la première interruption le chrono démarre, à la seconde le chrono sur un tour s'affiche pendant que le comptage se remette à zéro et ainsi de suite...

Je sais que c'est simple pour un initié mais je bute là, des idées ?

Merci d'avance.

hello
va voir

dfgh:
hello
va voir

ha effectivement ça semble correspondre à ce dont j'ai besoin, je vais éplucher ça...

bon en fait j'ai toujours autant de mal, dans l'exemple je ne vois pas ou mène l'interruption: sa fonction void isr_ligne_franchie() n'est déclenchée par rien du tout, donc au final ça ne m'aide pas tant que ça...

hello
c'est ici

charges le code en #33 et regardes la ligne 9 :slight_smile:

Mouais.....et le cahier des charges ?
Quel précision le chrono : la microseconde ou la minute ?
Quel est le temps max à mesurer : 1mn, 1 jour, 1 mois, 1année ?

Selon ce que tu veux faire il y aura des solutions très simples ou très compliquées.
Tout sera basé sur les "Timers". Soit ce sera caché dans une bibliothèques toute cuite, soit ce sera toi qui gèrera.
Pour commencer je pense que tu devrais commencer par lire un peu de documentation sur les timers (dont la datasheet du micro).
Même si tu utilises une bibliothèque toute cuite cela t'aidera à comprendre.
Enfin c'est comme cela que je fais.

68tjs:
Mouais.....et le cahier des charges ?
Quel précision le chrono : la microseconde ou la minute ?
Quel est le temps max à mesurer : 1mn, 1 jour, 1 mois, 1année ?

Selon ce que tu veux faire il y aura des solutions très simples ou très compliquées.
Tout sera basé sur les "Timers". Soit ce sera caché dans une bibliothèques toute cuite, soit ce sera toi qui gèrera.
Pour commencer je pense que tu devrais commencer par lire un peu de documentation sur les timers (dont la datasheet du micro).
Même si tu utilises une bibliothèque toute cuite cela t'aidera à comprendre.
Enfin c'est comme cela que je fais.

en fait c'est pour une moto, l'idée c'est de refaire le principe d'un compteur Alfano (pour les connaisseurs),
déclenché par une bande magnétique dans le circuit donc par un contacteur à lamelle.
Temps maxi 5 minutes et précision au centième de seconde, ce qui est très raisonnable.
J'ai justement commencé de lire un peu sur les timers mais justement je ne saisis pas encore bien le fonctionnement des choses. C'est pour ça que je voulais déjà voir s'il n'y a pas de solution plus simple.

dfgh:
hello
c'est ici

charges le code en #33 et regardes la ligne 9 :slight_smile:

ok je réépluche ça :smiley:

pas la peine, c'est assez limité en temps car un tour dure moins d'une minute

fais une recherche sur la toile avec "alfano du pauvre"

Oui je connaissais l'alfano du pauvre mais les différentes solutions ne passent pas toutes par arduino et si c'est le cas, c'est sans utiliser d'interruption. Le truc c'est que je veux après intégrer la fonction de chronométrage dans un projet de tableau de bord complet donc avec déjà plusieurs choses à gérer en même temps, c'est pour ça que je souhaite gérer le chrono par une interruption extérieure.

j'avais commencé un code pour un neveu motocycliste (sans le lui dire).
mais finalement presque terminé, j'ai appris qu'il en avait un...
si tu veux le code, je peux te le poster, il est pratiquement terminé et tu pourras l'étudier à loisir.

dfgh:
j'avais commencé un code pour un neveu motocycliste (sans le lui dire).
mais finalement presque terminé, j'ai appris qu'il en avait un...
si tu veux le code, je peux te le poster, il est pratiquement terminé et tu pourras l'étudier à loisir.

même si je ne l'exploite pas directement, oui ça peut toujours m'être utile au moins pour m'inspirer de ta logique, ça ne pourra que me faire progresser...

ok

chrono-course_very_big_v5_YAN (2).zip (12.2 KB)