
S05APP2: Noyau temps réel
Revision 26:faaca34daf91, committed 2017-01-31
- Comitter:
- benjaminroy
- Date:
- Tue Jan 31 19:06:42 2017 +0000
- Parent:
- 25:9428c29c50dc
- Commit message:
- Ajout de la valeur dans le printf
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Tue Jan 31 18:50:29 2017 +0000 +++ b/main.cpp Tue Jan 31 19:06:42 2017 +0000 @@ -4,7 +4,7 @@ #include "Serial.h" #include "rtos.h" - #define seuil 0.125 +#define seuil 0.125 Serial pc(USBTX, USBRX); // tx, rx Ticker ticker; @@ -23,6 +23,7 @@ typedef struct { char* temps; // Étampe indiquant l’heure et la date de l'occurrence uint8_t broche; // Le numéro de la broche + float valeur; } mail_t; Mail<mail_t, 4> mail_box; @@ -30,7 +31,7 @@ // ------------------------------------------------------- // ------------------------------------------------------- -void envoyer_mail(uint8_t broche) { +void envoyer_mail(uint8_t broche, float valeur) { mutex.lock(); time_t secondes = time(NULL); mutex.unlock(); @@ -38,6 +39,7 @@ mail_t *mail = mail_box.alloc(); mail->temps = ctime(&secondes); mail->broche = broche; + mail->valeur = valeur; mail_box.put(mail); } @@ -63,12 +65,12 @@ if (moyenne_passee[0] != -1) { if (((moyenne_courante[0] < moyenne_passee[0]) && (1 - (moyenne_courante[0] / moyenne_passee[0]) > seuil)) || (1 - (moyenne_passee[0] / moyenne_courante[0]) > seuil)) { - envoyer_mail(19); /*** Génération éventuelle d'un événement ***/ + envoyer_mail(19, moyenne_courante[0]); /*** Génération éventuelle d'un événement ***/ } } if (moyenne_passee[1] != -1) { if (((moyenne_courante[1] < moyenne_passee[1]) && (1 - (moyenne_courante[1] / moyenne_passee[1]) > seuil)) || (1 - (moyenne_passee[1] / moyenne_courante[1]) > seuil)) { - envoyer_mail(20); /*** Génération éventuelle d'un événement ***/ + envoyer_mail(20, moyenne_courante[1]); /*** Génération éventuelle d'un événement ***/ } } moyenne_passee[0] = moyenne_courante[0]; @@ -97,7 +99,7 @@ valeurs[0] = entreenum[0]; if (entreenum[0] == en_1.read()) { - envoyer_mail(15); /*** Génération d'un évènement... ***/ + envoyer_mail(15, entreenum[0]); /*** Génération d'un évènement... ***/ } } if (entreenum[1] != valeurs[1]) { @@ -106,7 +108,7 @@ valeurs[1] = entreenum[1]; if (entreenum[1] == en_2.read()) { - envoyer_mail(16); /*** Génération d'un évènement... ***/ + envoyer_mail(16, entreenum[1]); /*** Génération d'un évènement... ***/ } } Thread::yield(); @@ -121,7 +123,7 @@ mail_t *mail = (mail_t*)evt.value.p; /*** Écriture de l'événement en sortie (port série) ***/ - pc.printf("%d: Date: %s\n", mail->broche, mail->temps); + pc.printf("Broche %d; Valeur: %f; Date: %s\n", mail->broche, mail->valeur, mail->temps); mail_box.free(mail); } } @@ -134,15 +136,12 @@ t1->signal_set(0x2); verifierSiStable = false; } - if (compteur % 2 == 0) { // Entrées numériques échantillionnées à tous les 100 ms t1->signal_set(0x1); } - if (compteur % 5 == 0) { // Entrées analogiques échantillonnées à tous les 250 ms t2->signal_set(0x1); } - if (compteur % 10 == 0) { compteur = 0; }