Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: lib_LCD_i2c_SPTLYI mbed
chronometre.cpp
00001 #include "mbed.h" 00002 00003 #include "lib_LCD_i2c_SPTLYI.h" 00004 Timer t; // On initialise notre timer 00005 InterruptIn button(p15); // On initialise nos interruptions qui seront ici nos boutons poussoirs p15,p17 et p18 00006 InterruptIn button2(p17); 00007 InterruptIn button3(p18); 00008 LCD_I2C LCD(p28,p27,p26,0x7C); // On initialise la bibliothèque LCD 00009 00010 int timer=0; 00011 int min=0; // Le timer, le temps en min et en ms sont initialisés à 0 00012 int timer_ms = 0; 00013 00014 void fonction_demarrer() // On créer 3 fonctions d'interruptions : 00015 { 00016 t.start(); // La f fonction démarrer dans laquelle on fait démarrer le timer 00017 } 00018 void fonction_arreter() 00019 { 00020 t.stop(); // La fonction arrêter pour laquelle le timer s'arrête 00021 00022 } 00023 void fonction_reset() 00024 { 00025 t.reset(); // Et la fonction reset pour alquelle le timer se réinitialise à 0 00026 } 00027 int main() 00028 { 00029 button.fall(&fonction_demarrer); // Dans le programme principale on crée nos interruptions lorsque le bouton 1 est enclenché 00030 button3.fall(&fonction_arreter); // la fonction démarrer est appelé de même pour les fonctions arrêter et reset pour 00031 button2.fall(&fonction_reset); // les boutons poussoirs 2 et 3 respectivement. 00032 while(1) { 00033 LCD.clear(); 00034 LCD.set_position_cursor(0,0); 00035 LCD.print(min); // Lorsque le timer a démarré, on place les curseurs pour qu'il nous affiche les min 00036 if(min>=60) { 00037 t.reset(); // Si le timer dépasse l'heure cad plus de 60 min, il se reset 00038 } 00039 LCD.set_position_cursor(2,0); 00040 LCD.print(":"); // on sépare les minutes des secondes et les secondes des millisecondes grâce à des : 00041 LCD.set_position_cursor(5,0); 00042 LCD.print(":"); 00043 LCD.set_position_cursor(3,0); 00044 timer = t.read(); // on entre la valeur des secondes dans timer et on demande d'écrire timer sur l'écran LCD 00045 LCD.print(timer); 00046 if (timer>=60) { 00047 t.reset(); // Si la valeur en secondes dépasse les 60 on incrémente les minutes de 1 00048 LCD.set_position_cursor(4,0); 00049 LCD.print(" "); 00050 min=min+1; 00051 } 00052 LCD.set_position_cursor(6,0); 00053 timer_ms = t.read_ms(); // On entre le valeur en millisecondes dans timer_ms puis on l'écrit sur l'écran LCD 00054 LCD.print(timer_ms%1000); // On crée un modulo 1000 pour les millisecondes ce qui permettra de garder une valeur comprise entre 0 et 999 00055 wait_ms(10); // L'affichage se fait toutes les 10ms 00056 } 00057 }
Generated on Wed Jul 13 2022 07:06:46 by
