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:
- 2:94e2eebf1524
- Parent:
- 1:d37b1a61bd0b
- Child:
- 3:fa3112b2216c
diff -r d37b1a61bd0b -r 94e2eebf1524 main.cpp
--- a/main.cpp Thu Jan 26 03:43:56 2017 +0000
+++ b/main.cpp Thu Jan 26 21:24:12 2017 +0000
@@ -1,11 +1,20 @@
#include "mbed.h"
#include "rtos.h"
+#include "RTC.h"
DigitalIn en_1(p15);
DigitalIn en_2(p16);
AnalogIn ea_1(p19);
AnalogIn ea_2(p20);
+DigitalOut led(LED1);
+DigitalOut led2(LED2);
+Thread *t1;
+Thread *t2;
+Thread *t3;
+
+bool isReadyToRead = false;
+bool isFirstData = true; //#Cheap Bool
void lecture_analog(void const *args) {
while (true) {
// synchronisation sur la période d'échantillonnage
@@ -15,23 +24,77 @@
// génération éventuelle d'un événement
}
}
+
void lecture_num(void const *args) {
while (true) {
+ //led = en_1;
+ //printf("1: %d\n", en_1.read());
+ //wait(0.25);
+ //led2 = en_2;
+ //printf("2: %d\n", en_2.read());
+ //wait(0.25);
+
// synchronisation sur la période d'échantillonnage
+ Thread::signal_wait(0x1);
+
// lecture de l'étampe temporelle
+
// lecture des échantillons numériques
+ uint8_t en1Read = en_1.read();
+ uint8_t en2Read = en_2.read();
+ Thread::yield();
// prise en charge du phénomène de rebond
+ Thread::signal_wait(0x2);
+ //if changement valider si on a une valeur et si oui demander d'aller le lire dans 50 ms.
+ //Signal ISR que dans 50ms on veut qu'il nous rappel dans 50ms
// génération éventuelle d'un événement
+ if(en1Read == en_1.read()) printf("C'est pareil");
+ if(en2Read == en_2.read()) printf("C'est pareil");
}
}
+
void collection(void const *args) {
while (true) {
// attente et lecture d'un événement
// écriture de l'événement en sortie (port série)
}
}
+
+void signalThread()
+{
+ //Compter jusqu'à 10
+ //Si modulo 2 num
+ //modulo 5 anal
+ //modulo 10 remettre 0
+
+ //if(flag)
+ if(isFirstData)
+ {
+ isFirstData = false;
+ return;
+ }
+ printf("test");
+ if(isReadyToRead) t1->signal_set(0x1);
+ else t1->signal_set(0x2);
+ //t2.signal_set(0x1);
+}
+
int main() {
- // initialisation du RTC
- // démarrage des tâches
- while(1) { }
+ /*
+ // Démarrage des tâches
+ Thread t_lectureNum(lecture_num);
+ Thread t_lectureAna(lecture_analog);
+ Thread t_collection(collection);
+
+ t1 = &t_lectureNum;
+ t2 = &t_lectureAna;
+ t3 = &t_collection;
+ printf("test1");
+ // Initialisation du RTC
+ tm t = RTC::getDefaultTM();
+ t.tm_sec = 0.05;
+ RTC::alarm(&signalThread, t);
+ */
+ printf("test1");
+ //while(1) {}
}
\ No newline at end of file