le test

Dependencies:   LCD_DISCO_F429ZI mbed BSP_DISCO_F429ZI

Committer:
ascheriit
Date:
Thu May 23 09:03:30 2019 +0000
Revision:
39:b069cf6be013
Parent:
35:bda112796505
Le son semble etre bon.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ascheriit 27:86d38e8d3015 1 # include "alarme.h"
ascheriit 27:86d38e8d3015 2
ascheriit 27:86d38e8d3015 3 DigitalIn pinTgAl(PE_6);
ascheriit 33:31271a36a9a4 4 DigitalIn pinSeAl(PE_5);
ascheriit 35:bda112796505 5 DigitalOut pinAlarme(PG_13);
ascheriit 39:b069cf6be013 6 extern int GLOBAL_BOOL_ALARME; //booléen de gestion du son
ascheriit 27:86d38e8d3015 7
ascheriit 27:86d38e8d3015 8 void A_initAlarmes(STalarmes* all){
ascheriit 27:86d38e8d3015 9 all->ListeAlarmes = (temps*) malloc(sizeof(temps) * NOMBREDALARMES);
ascheriit 27:86d38e8d3015 10 for(int i=0;i<NOMBREDALARMES;i++){
ascheriit 27:86d38e8d3015 11 (all->ListeAlarmes+i)->heure = 0;
ascheriit 27:86d38e8d3015 12 (all->ListeAlarmes+i)->minute = 0;
ascheriit 27:86d38e8d3015 13 all->ListeActivation[i] = 0;
ascheriit 27:86d38e8d3015 14 }
ascheriit 27:86d38e8d3015 15 }
ascheriit 27:86d38e8d3015 16
ascheriit 27:86d38e8d3015 17 void A_DisplayAlarmes(STalarmes* alarmesPNT){
ascheriit 27:86d38e8d3015 18 STalarmes alarmes = *alarmesPNT;
ascheriit 27:86d38e8d3015 19 int positionYinit = 5;
ascheriit 27:86d38e8d3015 20 int positionYIncrement = 25;
ascheriit 27:86d38e8d3015 21 int alarmeTaille = 1;
ascheriit 27:86d38e8d3015 22 int positionXinit = 10;
ascheriit 27:86d38e8d3015 23 for(int i=0;i<NOMBREDALARMES;i++){
ascheriit 27:86d38e8d3015 24 if(alarmes.positionCurseur==i){
ascheriit 27:86d38e8d3015 25 DisplayMatrix(positionXinit,positionYinit + positionYIncrement * i,BS_fleche(),alarmeTaille * 2,COULEUR_FLECHE);
ascheriit 27:86d38e8d3015 26 }else{
ascheriit 27:86d38e8d3015 27 DisplayMatrix(positionXinit,positionYinit + positionYIncrement * i,BS_fleche(),alarmeTaille * 2,COULEUR_FOND);
ascheriit 27:86d38e8d3015 28 }
ascheriit 27:86d38e8d3015 29 if(alarmes.ListeActivation[i]){
ascheriit 27:86d38e8d3015 30 DisplayMatrix(positionXinit + alarmeTaille * 26,positionYinit + positionYIncrement * i,BS_cloche(),alarmeTaille,COULEUR_ACTIVE);
ascheriit 27:86d38e8d3015 31 }else{
ascheriit 27:86d38e8d3015 32 DisplayMatrix(positionXinit + alarmeTaille * 26,positionYinit + positionYIncrement * i,BS_cloche(),alarmeTaille,COULEUR_OFF);
ascheriit 27:86d38e8d3015 33 }
ascheriit 27:86d38e8d3015 34 H_afficheHorlogeElemClean(*(alarmes.ListeAlarmes + i),positionXinit + alarmeTaille * 54,positionYinit + positionYIncrement * i,alarmeTaille * 2,COULEUR_HEURE_ALARME,COULEUR_FOND);
ascheriit 27:86d38e8d3015 35 }
ascheriit 27:86d38e8d3015 36 }
ascheriit 27:86d38e8d3015 37
ascheriit 34:2ea9312c0608 38 void A_DisplayFleche(STalarmes* alarmesPNT){
ascheriit 34:2ea9312c0608 39 int positionYinit = 5;
ascheriit 34:2ea9312c0608 40 int positionYIncrement = 25;
ascheriit 34:2ea9312c0608 41 int alarmeTaille = 1;
ascheriit 34:2ea9312c0608 42 int positionXinit = 10;
ascheriit 34:2ea9312c0608 43 for(int i=0;i<NOMBREDALARMES;i++){
ascheriit 34:2ea9312c0608 44 if(alarmesPNT->positionCurseur==i){
ascheriit 34:2ea9312c0608 45 DisplayMatrix(positionXinit,positionYinit + positionYIncrement * i,BS_fleche(),alarmeTaille * 2,COULEUR_FLECHE);
ascheriit 34:2ea9312c0608 46 }else{
ascheriit 34:2ea9312c0608 47 DisplayMatrix(positionXinit,positionYinit + positionYIncrement * i,BS_fleche(),alarmeTaille * 2,COULEUR_FOND);
ascheriit 34:2ea9312c0608 48 }
ascheriit 34:2ea9312c0608 49 }
ascheriit 34:2ea9312c0608 50 }
ascheriit 34:2ea9312c0608 51
ascheriit 27:86d38e8d3015 52 void A_getSelection(STalarmes* alarmesPNT){
ascheriit 27:86d38e8d3015 53 alarmesPNT->positionCurseur=CR_donneSelection(CR_position(CR_readPins()));
ascheriit 27:86d38e8d3015 54 }
ascheriit 27:86d38e8d3015 55
ascheriit 27:86d38e8d3015 56 void A_toogleAlarme(STalarmes* alarmesPNT){
ascheriit 33:31271a36a9a4 57 if(pinTgAl.read() && alarmesPNT->positionCurseur < NOMBREDALARMES){
ascheriit 29:55d27fb3eb34 58 while(pinTgAl.read()){
ascheriit 27:86d38e8d3015 59 ;
ascheriit 27:86d38e8d3015 60 }
ascheriit 29:55d27fb3eb34 61 *(alarmesPNT->ListeActivation + alarmesPNT->positionCurseur)=!*(alarmesPNT->ListeActivation + alarmesPNT->positionCurseur);
ascheriit 34:2ea9312c0608 62 A_DisplayAlarmes(alarmesPNT);
ascheriit 27:86d38e8d3015 63 }
ascheriit 27:86d38e8d3015 64 }
ascheriit 27:86d38e8d3015 65
ascheriit 33:31271a36a9a4 66 void A_setAlarme(STalarmes* alarmesPNT){
ascheriit 33:31271a36a9a4 67 if(pinSeAl.read() && alarmesPNT->positionCurseur < NOMBREDALARMES){
ascheriit 33:31271a36a9a4 68 while(pinSeAl.read()){
ascheriit 33:31271a36a9a4 69 ;
ascheriit 33:31271a36a9a4 70 }
ascheriit 33:31271a36a9a4 71 int positionYinit = 5;
ascheriit 33:31271a36a9a4 72 int positionYIncrement = 25;
ascheriit 33:31271a36a9a4 73 int alarmeTaille = 1;
ascheriit 33:31271a36a9a4 74 int positionXinit = 10;
ascheriit 33:31271a36a9a4 75 H_reglage(alarmesPNT->ListeAlarmes + alarmesPNT->positionCurseur,positionXinit + alarmeTaille * 54,positionYinit + positionYIncrement * alarmesPNT->positionCurseur,alarmeTaille * 2,COULEUR_HEURE_ALARME_MOD,COULEUR_FOND);
ascheriit 34:2ea9312c0608 76 A_DisplayAlarmes(alarmesPNT);
ascheriit 33:31271a36a9a4 77 }
ascheriit 33:31271a36a9a4 78 }
ascheriit 33:31271a36a9a4 79
ascheriit 35:bda112796505 80 void A_checkAlarmes(STalarmes* alarmesPNT,temps* maintenant){
ascheriit 35:bda112796505 81 int isOn=0; //booléen pour test l'activation d'une alarme.
ascheriit 35:bda112796505 82 for(int i=0;i<NOMBREDALARMES;i++){
ascheriit 35:bda112796505 83 if(*(alarmesPNT->ListeActivation + i) && (alarmesPNT->ListeAlarmes + i)->heure==maintenant->heure && (alarmesPNT->ListeAlarmes + i)->minute==maintenant->minute){
ascheriit 35:bda112796505 84 isOn=1;
ascheriit 35:bda112796505 85 break;
ascheriit 35:bda112796505 86 }
ascheriit 35:bda112796505 87 }
ascheriit 35:bda112796505 88 pinAlarme=isOn;
ascheriit 39:b069cf6be013 89 GLOBAL_BOOL_ALARME=isOn;
ascheriit 35:bda112796505 90 }
ascheriit 35:bda112796505 91
ascheriit 35:bda112796505 92
ascheriit 27:86d38e8d3015 93 void A_test(){
ascheriit 27:86d38e8d3015 94 STalarmes alarmes;
ascheriit 27:86d38e8d3015 95 A_initAlarmes(&alarmes);
ascheriit 27:86d38e8d3015 96 clean();
ascheriit 27:86d38e8d3015 97 A_DisplayAlarmes(&alarmes);
ascheriit 27:86d38e8d3015 98 alarmes.positionCurseur=2;
ascheriit 27:86d38e8d3015 99 *(alarmes.ListeActivation+3)=1;
ascheriit 27:86d38e8d3015 100 (alarmes.ListeAlarmes+4)->minute=23;
ascheriit 27:86d38e8d3015 101 (alarmes.ListeAlarmes+4)->heure=17;
ascheriit 33:31271a36a9a4 102 wait(0.5);
ascheriit 27:86d38e8d3015 103 while(1){
ascheriit 33:31271a36a9a4 104 //clean();
ascheriit 33:31271a36a9a4 105 //wait(0.05);
ascheriit 27:86d38e8d3015 106 A_getSelection(&alarmes);
ascheriit 29:55d27fb3eb34 107 A_toogleAlarme(&alarmes);
ascheriit 33:31271a36a9a4 108 A_setAlarme(&alarmes);
ascheriit 34:2ea9312c0608 109 A_DisplayFleche(&alarmes);
ascheriit 33:31271a36a9a4 110 //H_toogleElem();
ascheriit 33:31271a36a9a4 111 wait(0.15);
ascheriit 27:86d38e8d3015 112 }
ascheriit 27:86d38e8d3015 113 }