Éric Bisson
/
S5info_APP2
School Project
main.cpp
- Committer:
- ericbisson
- Date:
- 2017-01-30
- Revision:
- 0:c637467eeb8f
- Child:
- 1:b3ae0d9f02ad
File content as of revision 0:c637467eeb8f:
#include "mbed.h" #include "rtos.h" Ticker tick; Thread* t1; Thread* t2; Thread* t3; DigitalIn en_1(p15); DigitalIn en_2(p16); AnalogIn ea_1(p19); AnalogIn ea_2(p20); Serial pc(USBTX, USBRX); void signal_analog() { t1->signal_set(1); } void signal_digital() { t2->signal_set(2); } void lecture_analog(void/* const *args*/) { while (true) { t1->signal_wait(1); // synchronisation sur la période d'échantillonnage // lecture de l'étampe temporelle // lecture des échantillons analogiques // calcul de la nouvelle moyenne courante // génération éventuelle d'un événement t1->signal_clr(1); t1->yield(); } } void lecture_num(void/* const *args*/) { while (true) { t2->signal_wait(2); // synchronisation sur la période d'échantillonnage // lecture de l'étampe temporelle // lecture des échantillons numériques // prise en charge du phénomène de rebond // génération éventuelle d'un événement t2->signal_clr(2); t2->yield(); } } void collection(void/* const *args*/) { while (true) { // attente et lecture d'un événement // écriture de l'événement en sortie (port série) } } int main() { // initialisation du RTC // get the current time from the terminal struct tm t; pc.printf("Enter current date and time:\n"); pc.printf("YYYY MM DD HH MM SS[enter]\n"); pc.scanf("%d %d %d %d %d %d", &t.tm_year, &t.tm_mon, &t.tm_mday , &t.tm_hour, &t.tm_min, &t.tm_sec); // adjust for tm structure required values t.tm_year = t.tm_year - 1900; t.tm_mon = t.tm_mon - 1; // set the time set_time(mktime(&t)); // démarrage des tâches t1 = new Thread(); t2 = new Thread(); t3 = new Thread(); t1->start(lecture_analog); t2->start(lecture_num); t3->start(collection); tick.attach(&signal_analog, 0.25); // fréquence de 250ms tick.attach(&signal_digital, 0.1); // fréquence de 100ms while(1) { } }