Add CRC16 library

Dependencies:   CRC16 mbed-rtos mbed

Fork of S5info_APP4 by Éric Bisson

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) {
    }
}