gfdh

Dependencies:   mbed-rtos mbed

Committer:
RufflesAllD
Date:
Mon Jan 27 16:50:48 2014 +0000
Revision:
1:96a4c2a39981
Parent:
0:f7d5819b29d5
Child:
2:6009cb96f273
thread

Who changed what in which revision?

UserRevisionLine numberNew contents of line
joGenie 0:f7d5819b29d5 1 #include "mbed.h"
joGenie 0:f7d5819b29d5 2 #include "rtos.h"
RufflesAllD 1:96a4c2a39981 3 #include <ctime>
joGenie 0:f7d5819b29d5 4
joGenie 0:f7d5819b29d5 5 DigitalIn en_1(p15);
joGenie 0:f7d5819b29d5 6 DigitalIn en_2(p16);
RufflesAllD 1:96a4c2a39981 7
joGenie 0:f7d5819b29d5 8 AnalogIn ea_1(p19);
joGenie 0:f7d5819b29d5 9 AnalogIn ea_2(p20);
joGenie 0:f7d5819b29d5 10
RufflesAllD 1:96a4c2a39981 11 Serial pc(USBTX, USBRX);
RufflesAllD 1:96a4c2a39981 12
RufflesAllD 1:96a4c2a39981 13 void showTime(char *buffer)
RufflesAllD 1:96a4c2a39981 14 {
RufflesAllD 1:96a4c2a39981 15 std::time_t time = std::time(0);
RufflesAllD 1:96a4c2a39981 16
RufflesAllD 1:96a4c2a39981 17 strftime(buffer, 32, "%Y-%m-%d %H:%M:%S\n\r", localtime(&time));
RufflesAllD 1:96a4c2a39981 18 }
RufflesAllD 1:96a4c2a39981 19
joGenie 0:f7d5819b29d5 20 void lecture_analog(void const *args)
joGenie 0:f7d5819b29d5 21 {
joGenie 0:f7d5819b29d5 22 while (true)
joGenie 0:f7d5819b29d5 23 {
joGenie 0:f7d5819b29d5 24 // synchronisation sur la période d'échantillonnage
joGenie 0:f7d5819b29d5 25 // lecture de l'étampe temporelle
joGenie 0:f7d5819b29d5 26 // lecture des échantillons analogiques
joGenie 0:f7d5819b29d5 27 // calcul de la nouvelle moyenne courante
joGenie 0:f7d5819b29d5 28 // génération éventuelle d'un événement
joGenie 0:f7d5819b29d5 29 }
joGenie 0:f7d5819b29d5 30 }
joGenie 0:f7d5819b29d5 31
RufflesAllD 1:96a4c2a39981 32 void lecture_digital1(void const *thread)
RufflesAllD 1:96a4c2a39981 33 {
RufflesAllD 1:96a4c2a39981 34 (Thread)
RufflesAllD 1:96a4c2a39981 35 }
RufflesAllD 1:96a4c2a39981 36
joGenie 0:f7d5819b29d5 37 void lecture_num(void const *args)
joGenie 0:f7d5819b29d5 38 {
joGenie 0:f7d5819b29d5 39 while (true)
joGenie 0:f7d5819b29d5 40 {
RufflesAllD 1:96a4c2a39981 41 Thread::signal_wait(0x1);
RufflesAllD 1:96a4c2a39981 42 pc.prinft("HAHAHAHAHAHAHA");
joGenie 0:f7d5819b29d5 43 // synchronisation sur la période d'échantillonnage
joGenie 0:f7d5819b29d5 44 // lecture de l'étampe temporelle
joGenie 0:f7d5819b29d5 45 // lecture des échantillons numériques
joGenie 0:f7d5819b29d5 46 // prise en charge du phénomène de rebond
joGenie 0:f7d5819b29d5 47 // génération éventuelle d'un événement
joGenie 0:f7d5819b29d5 48 }
joGenie 0:f7d5819b29d5 49 }
joGenie 0:f7d5819b29d5 50
joGenie 0:f7d5819b29d5 51 void collection(void const *args)
joGenie 0:f7d5819b29d5 52 {
RufflesAllD 1:96a4c2a39981 53 char *time = new char;
RufflesAllD 1:96a4c2a39981 54
joGenie 0:f7d5819b29d5 55 while (true)
joGenie 0:f7d5819b29d5 56 {
RufflesAllD 1:96a4c2a39981 57 showTime(time);
RufflesAllD 1:96a4c2a39981 58 pc.printf("time: %s", time);
RufflesAllD 1:96a4c2a39981 59 wait(2);
joGenie 0:f7d5819b29d5 60 // attente et lecture d'un événement
joGenie 0:f7d5819b29d5 61 // écriture de l'événement en sortie (port série)
joGenie 0:f7d5819b29d5 62 }
joGenie 0:f7d5819b29d5 63 }
joGenie 0:f7d5819b29d5 64
joGenie 0:f7d5819b29d5 65 int main()
joGenie 0:f7d5819b29d5 66 {
joGenie 0:f7d5819b29d5 67 // initialisation du RTC
RufflesAllD 1:96a4c2a39981 68 set_time(1390820561); //2014-01-27 11:02:41
RufflesAllD 1:96a4c2a39981 69
joGenie 0:f7d5819b29d5 70 // démarrage des tâches
RufflesAllD 1:96a4c2a39981 71 Thread thread1(lecture_num);
RufflesAllD 1:96a4c2a39981 72 RtosTimer lect_num(lecture_digital1, osTimerPeriodic, (void*)thread1);
RufflesAllD 1:96a4c2a39981 73 lect_num.start(100);
RufflesAllD 1:96a4c2a39981 74 //Thread thread2(lecture_analog);
RufflesAllD 1:96a4c2a39981 75 //Thread thread3(collection);
RufflesAllD 1:96a4c2a39981 76
RufflesAllD 1:96a4c2a39981 77 while(true) {}
joGenie 0:f7d5819b29d5 78 }