TP3_exo1
Dependencies: lib_LCD_i2c_SPTLYI mbed
Revision 0:c837f6eaca77, committed 2014-10-23
- Comitter:
- mbedo
- Date:
- Thu Oct 23 12:15:16 2014 +0000
- Commit message:
- TP3_exo1
Changed in this revision
diff -r 000000000000 -r c837f6eaca77 chronometre.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/chronometre.cpp Thu Oct 23 12:15:16 2014 +0000 @@ -0,0 +1,57 @@ +#include "mbed.h" + +#include "lib_LCD_i2c_SPTLYI.h" +Timer t; // On initialise notre timer +InterruptIn button(p15); // On initialise nos interruptions qui seront ici nos boutons poussoirs p15,p17 et p18 +InterruptIn button2(p17); +InterruptIn button3(p18); +LCD_I2C LCD(p28,p27,p26,0x7C); // On initialise la bibliothèque LCD + +int timer=0; +int min=0; // Le timer, le temps en min et en ms sont initialisés à 0 +int timer_ms = 0; + +void fonction_demarrer() // On créer 3 fonctions d'interruptions : +{ + t.start(); // La f fonction démarrer dans laquelle on fait démarrer le timer +} +void fonction_arreter() +{ + t.stop(); // La fonction arrêter pour laquelle le timer s'arrête + +} +void fonction_reset() +{ + t.reset(); // Et la fonction reset pour alquelle le timer se réinitialise à 0 +} +int main() +{ + button.fall(&fonction_demarrer); // Dans le programme principale on crée nos interruptions lorsque le bouton 1 est enclenché + button3.fall(&fonction_arreter); // la fonction démarrer est appelé de même pour les fonctions arrêter et reset pour + button2.fall(&fonction_reset); // les boutons poussoirs 2 et 3 respectivement. + while(1) { + LCD.clear(); + LCD.set_position_cursor(0,0); + LCD.print(min); // Lorsque le timer a démarré, on place les curseurs pour qu'il nous affiche les min + if(min>=60) { + t.reset(); // Si le timer dépasse l'heure cad plus de 60 min, il se reset + } + LCD.set_position_cursor(2,0); + LCD.print(":"); // on sépare les minutes des secondes et les secondes des millisecondes grâce à des : + LCD.set_position_cursor(5,0); + LCD.print(":"); + LCD.set_position_cursor(3,0); + timer = t.read(); // on entre la valeur des secondes dans timer et on demande d'écrire timer sur l'écran LCD + LCD.print(timer); + if (timer>=60) { + t.reset(); // Si la valeur en secondes dépasse les 60 on incrémente les minutes de 1 + LCD.set_position_cursor(4,0); + LCD.print(" "); + min=min+1; + } + LCD.set_position_cursor(6,0); + timer_ms = t.read_ms(); // On entre le valeur en millisecondes dans timer_ms puis on l'écrit sur l'écran LCD + 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 + wait_ms(10); // L'affichage se fait toutes les 10ms + } +} \ No newline at end of file
diff -r 000000000000 -r c837f6eaca77 lib_LCD_i2c_SPTLYI.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib_LCD_i2c_SPTLYI.lib Thu Oct 23 12:15:16 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/YSI/code/lib_LCD_i2c_SPTLYI/#a805daa83dd0
diff -r 000000000000 -r c837f6eaca77 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Thu Oct 23 12:15:16 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/552587b429a1 \ No newline at end of file