le test

Dependencies:   LCD_DISCO_F429ZI mbed BSP_DISCO_F429ZI

Committer:
ascheriit
Date:
Thu May 16 10:17:34 2019 +0000
Revision:
33:31271a36a9a4
Parent:
29:55d27fb3eb34
Child:
34:2ea9312c0608
L'interface marche bien.

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 27:86d38e8d3015 5
ascheriit 27:86d38e8d3015 6 void A_initAlarmes(STalarmes* all){
ascheriit 27:86d38e8d3015 7 all->ListeAlarmes = (temps*) malloc(sizeof(temps) * NOMBREDALARMES);
ascheriit 27:86d38e8d3015 8 for(int i=0;i<NOMBREDALARMES;i++){
ascheriit 27:86d38e8d3015 9 (all->ListeAlarmes+i)->heure = 0;
ascheriit 27:86d38e8d3015 10 (all->ListeAlarmes+i)->minute = 0;
ascheriit 27:86d38e8d3015 11 all->ListeActivation[i] = 0;
ascheriit 27:86d38e8d3015 12 }
ascheriit 27:86d38e8d3015 13 }
ascheriit 27:86d38e8d3015 14
ascheriit 27:86d38e8d3015 15 void A_DisplayAlarmes(STalarmes* alarmesPNT){
ascheriit 27:86d38e8d3015 16 STalarmes alarmes = *alarmesPNT;
ascheriit 27:86d38e8d3015 17 int positionYinit = 5;
ascheriit 27:86d38e8d3015 18 int positionYIncrement = 25;
ascheriit 27:86d38e8d3015 19 int alarmeTaille = 1;
ascheriit 27:86d38e8d3015 20 int positionXinit = 10;
ascheriit 27:86d38e8d3015 21 for(int i=0;i<NOMBREDALARMES;i++){
ascheriit 27:86d38e8d3015 22 if(alarmes.positionCurseur==i){
ascheriit 27:86d38e8d3015 23 DisplayMatrix(positionXinit,positionYinit + positionYIncrement * i,BS_fleche(),alarmeTaille * 2,COULEUR_FLECHE);
ascheriit 27:86d38e8d3015 24 }else{
ascheriit 27:86d38e8d3015 25 DisplayMatrix(positionXinit,positionYinit + positionYIncrement * i,BS_fleche(),alarmeTaille * 2,COULEUR_FOND);
ascheriit 27:86d38e8d3015 26 }
ascheriit 27:86d38e8d3015 27 if(alarmes.ListeActivation[i]){
ascheriit 27:86d38e8d3015 28 DisplayMatrix(positionXinit + alarmeTaille * 26,positionYinit + positionYIncrement * i,BS_cloche(),alarmeTaille,COULEUR_ACTIVE);
ascheriit 27:86d38e8d3015 29 }else{
ascheriit 27:86d38e8d3015 30 DisplayMatrix(positionXinit + alarmeTaille * 26,positionYinit + positionYIncrement * i,BS_cloche(),alarmeTaille,COULEUR_OFF);
ascheriit 27:86d38e8d3015 31 }
ascheriit 27:86d38e8d3015 32 H_afficheHorlogeElemClean(*(alarmes.ListeAlarmes + i),positionXinit + alarmeTaille * 54,positionYinit + positionYIncrement * i,alarmeTaille * 2,COULEUR_HEURE_ALARME,COULEUR_FOND);
ascheriit 27:86d38e8d3015 33 }
ascheriit 27:86d38e8d3015 34 }
ascheriit 27:86d38e8d3015 35
ascheriit 27:86d38e8d3015 36 void A_getSelection(STalarmes* alarmesPNT){
ascheriit 27:86d38e8d3015 37 alarmesPNT->positionCurseur=CR_donneSelection(CR_position(CR_readPins()));
ascheriit 27:86d38e8d3015 38 }
ascheriit 27:86d38e8d3015 39
ascheriit 27:86d38e8d3015 40 void A_toogleAlarme(STalarmes* alarmesPNT){
ascheriit 33:31271a36a9a4 41 if(pinTgAl.read() && alarmesPNT->positionCurseur < NOMBREDALARMES){
ascheriit 29:55d27fb3eb34 42 while(pinTgAl.read()){
ascheriit 27:86d38e8d3015 43 ;
ascheriit 27:86d38e8d3015 44 }
ascheriit 29:55d27fb3eb34 45 *(alarmesPNT->ListeActivation + alarmesPNT->positionCurseur)=!*(alarmesPNT->ListeActivation + alarmesPNT->positionCurseur);
ascheriit 27:86d38e8d3015 46 }
ascheriit 27:86d38e8d3015 47 }
ascheriit 27:86d38e8d3015 48
ascheriit 33:31271a36a9a4 49 void A_setAlarme(STalarmes* alarmesPNT){
ascheriit 33:31271a36a9a4 50 if(pinSeAl.read() && alarmesPNT->positionCurseur < NOMBREDALARMES){
ascheriit 33:31271a36a9a4 51 while(pinSeAl.read()){
ascheriit 33:31271a36a9a4 52 ;
ascheriit 33:31271a36a9a4 53 }
ascheriit 33:31271a36a9a4 54 int positionYinit = 5;
ascheriit 33:31271a36a9a4 55 int positionYIncrement = 25;
ascheriit 33:31271a36a9a4 56 int alarmeTaille = 1;
ascheriit 33:31271a36a9a4 57 int positionXinit = 10;
ascheriit 33:31271a36a9a4 58 H_reglage(alarmesPNT->ListeAlarmes + alarmesPNT->positionCurseur,positionXinit + alarmeTaille * 54,positionYinit + positionYIncrement * alarmesPNT->positionCurseur,alarmeTaille * 2,COULEUR_HEURE_ALARME_MOD,COULEUR_FOND);
ascheriit 33:31271a36a9a4 59 clean();
ascheriit 33:31271a36a9a4 60 }
ascheriit 33:31271a36a9a4 61 }
ascheriit 33:31271a36a9a4 62
ascheriit 27:86d38e8d3015 63 void A_test(){
ascheriit 27:86d38e8d3015 64 STalarmes alarmes;
ascheriit 27:86d38e8d3015 65 A_initAlarmes(&alarmes);
ascheriit 27:86d38e8d3015 66 clean();
ascheriit 27:86d38e8d3015 67 A_DisplayAlarmes(&alarmes);
ascheriit 27:86d38e8d3015 68 alarmes.positionCurseur=2;
ascheriit 27:86d38e8d3015 69 *(alarmes.ListeActivation+3)=1;
ascheriit 27:86d38e8d3015 70 (alarmes.ListeAlarmes+4)->minute=23;
ascheriit 27:86d38e8d3015 71 (alarmes.ListeAlarmes+4)->heure=17;
ascheriit 33:31271a36a9a4 72 wait(0.5);
ascheriit 27:86d38e8d3015 73 while(1){
ascheriit 33:31271a36a9a4 74 //clean();
ascheriit 33:31271a36a9a4 75 //wait(0.05);
ascheriit 27:86d38e8d3015 76 A_getSelection(&alarmes);
ascheriit 29:55d27fb3eb34 77 A_toogleAlarme(&alarmes);
ascheriit 33:31271a36a9a4 78 A_setAlarme(&alarmes);
ascheriit 27:86d38e8d3015 79 A_DisplayAlarmes(&alarmes);
ascheriit 33:31271a36a9a4 80 //H_toogleElem();
ascheriit 33:31271a36a9a4 81 wait(0.15);
ascheriit 27:86d38e8d3015 82 }
ascheriit 27:86d38e8d3015 83 }