
Pour les potos en galère tmtc
Diff: main.cpp
- 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