Pour les potos en galère tmtc

Dependencies:   C12832

Revision:
7:1cced6852c01
Parent:
6:f8cb706c480c
--- a/main.cpp	Tue Sep 19 15:25:01 2017 +0000
+++ b/main.cpp	Wed Mar 31 13:29:12 2021 +0000
@@ -1,19 +1,54 @@
-#include "mbed.h"
-#include "C12832.h"
+#include "mbed.h"                  //Définition Mbde
+#include "C12832.h"                //Librairie du LCD
 
-// Using Arduino pin notation
-C12832 lcd(D11, D13, D12, D7, D10);
+//InterruptIn fire_event(D4);
+DigitalIn fire(D4);
+Timer timer;
+C12832 lcd(D11, D13, D12, D7, D10); //Broches pour LCD définies par la librairie C12832
+
+int etat = 0;
+int last_time, last_time2;
+int elapsed_time, elapsed_time2;
+int last_state;
+
+void changerEtat(void);
 
 int main()
 {
-    int j=0;
     lcd.cls();
-    lcd.locate(0,3);
-    lcd.printf("mbed application shield!");
+    lcd.locate(20,20);
+
+    //fire_event.rise(&changerEtat);
+    timer.start();
+
+    while(true) {
 
-    while(true) {   // this is the third thread
-        lcd.locate(0,15);
-        lcd.printf("Counting : %d",j++);
-        wait(1.0);
+        int etat_fire = fire.read();
+        if(etat_fire > last_state) { // Front montant
+            changerEtat();
+            last_time2 = timer.read();
+        } else if(last_state < etat_fire) {
+            elapsed_time2 = timer.read() - last_time2;
+            if(elapsed_time2 >= 2)
+                etat = 3;
+        }
+        
+        last_state = etat_fire;
+
+        lcd.locate(0, 0);
+        lcd.printf("ETAT: %d \nDernier Appui: %d", etat, elapsed_time);
+        lcd.locate(0, 20);
+        lcd.printf("Temps appuye: %d", elapsed_time2);
+
+        wait(0.1);
+        lcd.cls();
     }
+
 }
+
+void changerEtat(void)
+{
+    elapsed_time = timer.read() - last_time;
+    last_time = timer.read();
+    etat = etat == 1 ? 2 : 1; 
+}
\ No newline at end of file