TP3_exo2
Dependencies: lib_LCD_i2c_SPTLYI mbed
Diff: chrono2.cpp
- Revision:
- 0:c81a3a3a526f
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/chrono2.cpp Thu Oct 23 12:15:59 2014 +0000 @@ -0,0 +1,61 @@ +#include "mbed.h" +#include "lib_LCD_i2c_SPTLYI.h" + +Timer t; +Timeout flipper; // Pour cet exercice nous utiliserons simplement un TimeOut en plus c'est à dire qu'elle va appeler une fonction +InterruptIn button(p15); // après un temps donné +InterruptIn button2(p17); +InterruptIn button3(p18); +LCD_I2C LCD(p28,p27,p26,0x7C); + +int timer=0; +int min=0; +int timer_ms = 0; + +void fonction_demarrer() +{ + t.start(); +} +void fonction_reset() +{ + t.reset(); +} +void fonction_arreter() +{ + t.stop(); + flipper.attach(&fonction_reset, 2.0); // Dans la fonction arreter, si la fonction est active plus de 2s alors la fonction reset + // est appelée et le timer est reset. +} + +int main() +{ + button.fall(&fonction_demarrer); + button3.fall(&fonction_arreter); + + button2.fall(&fonction_reset); + while(1) { + LCD.clear(); + LCD.set_position_cursor(0,0); + LCD.print(min); + if(min>=60) { + t.reset(); + } + LCD.set_position_cursor(2,0); + LCD.print(":"); + LCD.set_position_cursor(5,0); + LCD.print(":"); + LCD.set_position_cursor(3,0); + timer = t.read(); + LCD.print(timer); + if (timer>=60) { + t.reset(); + LCD.set_position_cursor(4,0); + LCD.print(" "); + min=min+1; + } + LCD.set_position_cursor(6,0); + timer_ms = t.read_ms(); + LCD.print(timer_ms%1000); + wait_ms(10); + } +} \ No newline at end of file