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: mbed lib_LCD_oem lib_LCD_i2c_SPTLYI
main.cpp
00001 #include "mbed.h" 00002 #include "lib_LCD_i2c_SPTLYI.h" 00003 #include "lib_LCD_oem_ELCD.h" 00004 00005 /* GUIDE D'UTILISATION 00006 Appuyer sur le bouton de droite pour lancer le timer 00007 Appuyer sur le bouton du milieu pour mettre le chronomètre en pause 00008 Appuyer sur le bouton de gauche pour réinitialiser le time 00009 */ 00010 00011 00012 Timer t; // On va utiliser timer 00013 InterruptIn boutondroit(p15); // Nous attribuons un nom pour les boutons en indiquant leurs ports 00014 InterruptIn boutonmilieu(p16); 00015 InterruptIn boutongauche(p17); 00016 LCD_OEM LCD; // On ouvre la bibliotheque lcd 00017 00018 int sec=0; // On initialise les 00019 int minu=0; // Le timer, le temps en min et en ms sont initialisés à 0 00020 int timer_ms = 0; 00021 00022 void fonction_demarrer() // On créer 3 fonctions d'interruptions : 00023 { 00024 t.start(); // La f fonction démarrer dans laquelle on fait démarrer le timer 00025 } 00026 void fonction_arreter() 00027 { 00028 t.stop(); // La fonction arrêter pour laquelle le timer s'arrête 00029 00030 } 00031 void fonction_reset() 00032 { 00033 t.reset(); // Fonction reset ou le timer se reinitialise 00034 } 00035 int main() 00036 { 00037 boutongauche.fall(fonction_demarrer); // Le bouton de gauche active la fonction démarrer 00038 boutonmilieu.fall(fonction_arreter); // le bouton du milieu active la fonction d'arret 00039 boutondroit.fall(fonction_reset); // Le bouton de droite active la fonction de reset 00040 while(1) { 00041 LCD.clear(); //on efface tout sur l'écran pour ne pas avoir de superposition des caractères 00042 LCD.set_position_cursor(0,0); //On choisit l'endroit où on va écrire 00043 LCD.print("Minutes ["); 00044 LCD.set_position_cursor(9,0); 00045 LCD.print(minu); // On demande à afficher les minutes 00046 if(minu>=60) { // Les minutes se réinitialise si elles atteignent 60 (1 heure) 00047 t.reset(); // fonction reset pour réinitialiser en cas de depassement 00048 } 00049 00050 //on va utiliser la même méthodes pour les secondes 00051 00052 LCD.set_position_cursor(11,0); 00053 LCD.print("]"); 00054 LCD.set_position_cursor(0,1); // on veut afficher les secondes sur la deuxième ligne 00055 LCD.print("Secondes ["); 00056 LCD.set_position_cursor(10,1); 00057 LCD.print(sec); 00058 sec = t.read(); // on entre la valeur des secondes dans timer et on demande d'écrire timer sur l'écran LCD 00059 if (sec>=60) { 00060 t.reset(); // Les secondes reviennent à zéro quand elles atteignent la minute 00061 LCD.set_position_cursor(4,1); 00062 LCD.print(" "); 00063 minu=minu+1; 00064 } 00065 LCD.set_position_cursor(12,1); 00066 LCD.print("]"); 00067 LCD.set_position_cursor(0,2); 00068 LCD.print("millisecondes ["); 00069 LCD.set_position_cursor(15,2); 00070 timer_ms = t.read_ms(); 00071 LCD.print(timer_ms%1000); // %1000 permet de garder une valeur dans l'intervalle [0;999] 00072 wait_ms(250); // L'affichage se fait toutes les 250ms. Meme si on nous demande toutes les 10ms 00073 // cela fait se rafraichir l'écran trop vite et les millisecondes ne sont pas visibles 00074 // on met donc un wait de 250 00075 00076 LCD.set_position_cursor(18,2); 00077 LCD.print("]"); 00078 } 00079 }
Generated on Thu Sep 15 2022 20:29:14 by
1.7.2