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: ihm_L476_full RTC_IUT
Revision 5:6ce20ff7927b, committed 2020-07-27
- Comitter:
- grimwald
- Date:
- Mon Jul 27 12:35:15 2020 +0000
- Parent:
- 4:86341306d9d7
- Child:
- 6:21be959149c3
- Commit message:
- post bus update;
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Wed Jun 17 21:34:59 2020 +0000
+++ b/main.cpp Mon Jul 27 12:35:15 2020 +0000
@@ -1,6 +1,6 @@
#include "RTC_IUT.h"//bibliotheque de l'afficheur
#include "ihm_L476.h"//bibliotheque du chrono
-//DigitalIn BPC (PA_0,PullNone) ; // bouton centre
+DigitalIn BPC (PA_0,PullNone) ; // bouton centre
DigitalIn BPL (PA_1,PullDown) ;//left
DigitalIn BPR(PA_2,PullDown) ;//right
DigitalIn BPU(PA_3,PullDown) ;//up
@@ -9,7 +9,7 @@
DigitalOut LR (PB_2) ; // led rouge
IHM_L476 ihm; // on chosis des noms qui nous serviront a appelé les fonctions dans les bibliotheque
-Rtc rtc;
+Rtc rtc;
time_t heure_t,minute_t,seconde_t;//on nomme nos valeur qui seront sous le format time_t
// prototype et variables globales et constantes
@@ -38,17 +38,18 @@
{
// définition d'un type énuméré permettant de manipuler l'état de l'automate
// par son nom
- typedef enum {affichage=0, Minutep =1, Minutem =2, Heurep = 3,Heurem =4} type_etat;
+ typedef enum {affichage=0, Minutep =1, Minutem =2, Heurep= 3,Heurem =4,Calendrier=5,Jour+=6,Jour} type_etat;
type_etat etat_actuel = affichage ; // déclaration état actuel init. à etat0
static type_etat etat_futur = affichage; // déclaration état futur
- int entreeb, entreeh, entreeg, entreed;
+ int entreeb, entreeh, entreeg, entreed , entree;
// gestion des entrees
- //entree = BPC;// c'est le bouton centre
+ entree = BPC;// c'est le bouton centre
entreeb = BPD;// c'est le bouton bas
entreeh = BPU;
entreeg = BPL;
entreed = BPR;
+
// gestion du diagramme de transition
etat_actuel = etat_futur; // mise à jour de l'état
// calul de l'éat futur en fonction de l'état actuel et des entrées
@@ -59,28 +60,29 @@
case affichage :
- if(entreed)etat_futur= Minutep;//si j'appui sur droite j'augmente les minute de 1
- if(entreeg)etat_futur=Minutem;//si j'appuie a gauche je diminue les minutes de
- if(entreeh)etat_futur=Heurep;//si j'appui sur haut j'augmente les heures de 1
+ if(entreed)etat_futur= Minutep;//si j'appuie sur droite j'augmente les minute de 1
+ if(entreeg)etat_futur=Minutem;//si j'appuie a gauche je diminue les minutes de
+ if(entreeh)etat_futur=Heurep;//si j'appuie sur haut j'augmente les heures de 1
if(entreeb)etat_futur=Heurem;//si j'appuie en bas je diminue les heures de 1
+ if(entree)etat_futur=Calendrier;//si j'appuie je vais sur le calendrier
- if(Minute_t >59 ) { // si Minute_t depasse 59 minutes alors Minute_t reviens a 0 et j'incremente Heure_t de 1
- Minute_t=00;
- rtc.SetHour(Heure_t++);
+ if(Minute_t > 59 ) { // si Minute_t depasse 59 minutes alors Minute_t reviens a 0 et j'incremente Heure_t de 1
+ Minute_t=00;
+ rtc.SetHour(Heure_t++);
}
if(Heure_t > 23 ) {//si Heure_t depasse 23 heures alors Heure_t reviens a 0
Heure_t = 00;
}
-
- if(Seconde_t >59 ) {// si Seconde_t depasse 59 secondes alors Secondes_t reviens a 0 et j'incremente Minute_t de 1
+
+ if(Seconde_t > 59 ) {// si Seconde_t depasse 59 secondes alors Secondes_t reviens a 0 et j'incremente Minute_t de 1
Seconde_t = 00;
rtc.SetMin(Minute_t++);
}
break;
-
-
+
+
case Minutep:
- rtc.SetMin(Minute_t++); // j'incremente Minute_t
+ rtc.SetMin(Minute_t++); // j'incremente Minute_t
rtc.SetSec(00);//je met les secondes a zero a chaque changement d'etat
etat_futur = affichage;// je retourne a l'affichage
break;
@@ -96,11 +98,13 @@
etat_futur = affichage;
break;
- case Heurem:
- rtc.SetHour(Heure_t--);
+ case Heurem :
+ rtc.SetHour(Heure_t--);
rtc.SetSec(00);
etat_futur = affichage;
break;
+ case Calendrier:
+ break;
@@ -113,13 +117,13 @@
case affichage :
ihm.BAR_set(0);
- heure_t= rtc.GetHour();
- minute_t = rtc.GetMin();//J'utilise les valeurs qui ont été etablie avant et je les met dans des variables
- seconde_t = rtc.GetSec();
+ heure_t= rtc.GetHour();
+ minute_t = rtc.GetMin();//J'utilise les valeurs qui ont été etablie avant et je les met dans des variables
+ seconde_t = rtc.GetSec();
ihm.LCD_printf("%02d:%02d:%02d",heure_t,minute_t,seconde_t);
- LG=0;// je met les leds a 0 pour un effet de clignotement
+ LG=0;// je met les leds a 0 pour un effet de clignotement
LR=0;
-
+
break;
@@ -127,31 +131,33 @@
case Minutep :
ihm.BAR_set(2);
heure_t= rtc.GetHour();
- minute_t = rtc.GetMin();//J'utilise les valeurs qui ont été etablie avant et je les met dans des variables
- seconde_t = rtc.GetSec();
- ihm.LCD_printf("%02d:%02d:%02d",heure_t,minute_t,seconde_t);
- LG=1;// j'allume verte pour l'incrementation
+ minute_t = rtc.GetMin();//J'utilise les valeurs qui ont été etablie avant et je les met dans des variables
+ seconde_t = rtc.GetSec();
+ ihm.LCD_printf("%02d:%02d:%02d",heure_t,minute_t,seconde_t);
+ LG=1;// j'allume verte pour l'incrementation
LR=0;
break;
case Minutem :
ihm.BAR_set(2);
ihm.LCD_printf("%02d:%02d:%02d",heure_t,minute_t,seconde_t);
- LG=0;// j'allume rouge pour la diminution
+ LG=0;// j'allume rouge pour la diminution
LR=1;
break;
case Heurep :
ihm.BAR_set(1);//debug de l'état
ihm.LCD_printf("%02d:%02d:%02d",heure_t,minute_t,seconde_t);//affichage de l'heure en format 00:00:00
- LG=1;// j'allume verte pour l'incrementation
- LR=0;
+ LG=1;// j'allume verte pour l'incrementation
+ LR=0;
break;
case Heurem :
ihm.BAR_set(1);
ihm.LCD_printf("%02d:%02d:%02d",Heure_t,Minute_t,seconde_t);
- LG=0;
+ LG=0;
LR=1;// j'allume rouge pour la diminution
break;
+ case Calendrier:
+ break;