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.
Diff: main.cpp
- Revision:
- 14:3b72daf433fb
- Parent:
- 13:29991a8767fe
- Child:
- 17:24e8d26ad707
diff -r 29991a8767fe -r 3b72daf433fb main.cpp
--- a/main.cpp Mon Jan 30 14:40:01 2017 +0000
+++ b/main.cpp Mon Jan 30 15:13:28 2017 +0000
@@ -13,10 +13,6 @@
uint8_t compteur = 0;
bool verifierSiStable = false;
-bool valeurs[2] = {0};
-float echantillons1[5];
-float echantillons2[5];
-float seuil = 0.125;
/* Mail */
typedef struct {
@@ -26,15 +22,14 @@
float moyenne; // Moyenne courante échantillonnée sur 5 échantillons successifs
} mail_t;
-Mail<mail_t, 50> mail_box;
+Mail<mail_t, 16> mail_box;
// -------------------------------------------------------
// -------------------------------------------------------
-void envoyer_mail(bool type, uint8_t broche, float moyenne) {
+void envoyer_mail(uint8_t broche, float moyenne) {
time_t secondes = time(NULL);
mail_t *mail = mail_box.alloc();
- mail->type = type;
mail->temps = ctime(&secondes);
mail->broche = broche;
mail->moyenne = moyenne;
@@ -45,7 +40,10 @@
uint8_t i = 0;
float moyenne_passee1 = -1;
float moyenne_passee2 = -1;
-
+ float echantillons1[5];
+ float echantillons2[5];
+ float seuil = 0.125;
+
while (true) {
/*** Synchronisation sur la période d'échantillonnage ***/
Thread::signal_wait(0x1);
@@ -68,12 +66,12 @@
if (moyenne_passee1 != -1) {
if ((std::abs(1 - (moyenne_courante1 / moyenne_passee1))) > seuil) {
- envoyer_mail(1, 19, moyenne_courante1); /*** Génération éventuelle d'un événement ***/
+ envoyer_mail(19, moyenne_courante1); /*** Génération éventuelle d'un événement ***/
}
}
if (moyenne_passee2 != -1) {
if ((std::abs(1 - (moyenne_courante2 / moyenne_passee2))) > seuil) {
- envoyer_mail(1, 20, moyenne_courante2); /*** Génération éventuelle d'un événement ***/
+ envoyer_mail(20, moyenne_courante2); /*** Génération éventuelle d'un événement ***/
}
}
moyenne_passee1 = moyenne_courante1;
@@ -83,7 +81,9 @@
}
}
-void lecture_num(void const *args) {
+void lecture_num(void const *args) {
+ bool valeurs[2] = {0};
+
while (true) {
/*** Synchronisation sur la période d'échantillonnage ***/
Thread::signal_wait(0x1);
@@ -101,7 +101,7 @@
valeurs[0] = en_1.read();
if (entreenum_1 == en_1.read()) {
- envoyer_mail(0, 15, NULL); /*** Génération d'un évènement... ***/
+ envoyer_mail(15, NULL); /*** Génération d'un évènement... ***/
}
}
@@ -111,7 +111,7 @@
valeurs[1] = en_2.read();
if (entreenum_2 == en_2.read()) {
- envoyer_mail(0, 16, NULL); /*** Génération d'un évènement... ***/
+ envoyer_mail(16, NULL); /*** Génération d'un évènement... ***/
}
}
Thread::yield();
@@ -126,7 +126,7 @@
mail_t *mail = (mail_t*)evt.value.p;
/*** Écriture de l'événement en sortie (port série) ***/
- if (mail->type == 0) {
+ if (mail->broche == 15 || mail->broche == 16) {
pc.printf("Une lecture detectee entree numerique %d\nDate: %s\n", mail->broche, mail->temps);
}
else {
@@ -160,7 +160,7 @@
int main() {
/*** Démarrage des tâches ***/
-
+
Thread t_lectureNum(lecture_num);
Thread t_lectureAnalog(lecture_analog);
Thread t_collection(collection);