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.
main.cpp
- Committer:
- marc1119
- Date:
- 2017-01-26
- Revision:
- 2:94e2eebf1524
- Parent:
- 1:d37b1a61bd0b
- Child:
- 3:fa3112b2216c
File content as of revision 2:94e2eebf1524:
#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
// lecture de l'étampe temporelle
// lecture des échantillons analogiques
// calcul de la nouvelle moyenne courante
// 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() {
/*
// 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) {}
}