Projet S5 info - Advanced version

Dependencies:   XBeeLib mbed-rtos mbed

Fork of Capteurs-Beginner by Vincent Belanger

Committer:
vinbel93
Date:
Thu Apr 14 14:43:37 2016 +0000
Revision:
11:c37c1c02a798
Parent:
9:6959e3ebe7f2
Final Advanced Version 2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vinbel93 0:58bb278068d6 1 #include "mbed.h"
SonSenpai 5:9505aed3788c 2 #include "rtos.h"
SonSenpai 5:9505aed3788c 3 #include "XBeeLib.h"
vinbel93 8:096edc8e8679 4
SonSenpai 5:9505aed3788c 5 using namespace XBeeLib;
vinbel93 8:096edc8e8679 6
vinbel93 4:69f8aea1eaf2 7 Serial pc(USBTX, USBRX);
vinbel93 8:096edc8e8679 8
SonSenpai 5:9505aed3788c 9 XBeeZB* xbee;
vinbel93 9:6959e3ebe7f2 10
vinbel93 7:e11d6545731a 11 AnalogIn GP2D12(p15);
vinbel93 8:096edc8e8679 12 DigitalIn capteur_1(p23);
vinbel93 8:096edc8e8679 13 DigitalIn capteur_2(p24);
vinbel93 8:096edc8e8679 14 DigitalIn capteur_3(p25);
vinbel93 8:096edc8e8679 15 DigitalIn capteur_4(p26);
vinbel93 8:096edc8e8679 16 DigitalIn capteur_5(p27);
vinbel93 8:096edc8e8679 17 DigitalIn capteur_6(p28);
vinbel93 8:096edc8e8679 18
SonSenpai 5:9505aed3788c 19 Mutex capt_lock;
vinbel93 8:096edc8e8679 20
SonSenpai 5:9505aed3788c 21 bool capt_1;
SonSenpai 5:9505aed3788c 22 bool capt_2;
SonSenpai 5:9505aed3788c 23 bool capt_3;
SonSenpai 5:9505aed3788c 24 bool capt_4;
SonSenpai 5:9505aed3788c 25 bool capt_5;
SonSenpai 5:9505aed3788c 26 bool capt_6;
vinbel93 8:096edc8e8679 27
vinbel93 7:e11d6545731a 28 uint16_t GP2D12_value;
SonSenpai 5:9505aed3788c 29
SonSenpai 5:9505aed3788c 30 /* lecture des capteurs à partir des broches du mbed : p15, p16, p17, 19, 20 21*/
vinbel93 8:096edc8e8679 31
SonSenpai 5:9505aed3788c 32 void lecture_capteurs (void const *args){
SonSenpai 5:9505aed3788c 33 capt_lock.lock();
SonSenpai 5:9505aed3788c 34
SonSenpai 5:9505aed3788c 35 capt_1=capteur_1.read();
SonSenpai 5:9505aed3788c 36 capt_2=capteur_2.read();
SonSenpai 5:9505aed3788c 37 capt_3=capteur_3.read();
SonSenpai 5:9505aed3788c 38 capt_4=capteur_4.read();
SonSenpai 5:9505aed3788c 39 capt_5=capteur_5.read();
SonSenpai 5:9505aed3788c 40 capt_6=capteur_6.read();
SonSenpai 5:9505aed3788c 41
vinbel93 7:e11d6545731a 42 GP2D12_value = GP2D12.read_u16();
vinbel93 7:e11d6545731a 43
SonSenpai 5:9505aed3788c 44 capt_lock.unlock();
SonSenpai 5:9505aed3788c 45 }
vinbel93 8:096edc8e8679 46
vinbel93 6:19b89212e67f 47 void send_data_to_coordinator(const uint8_t* data)
SonSenpai 5:9505aed3788c 48 {
vinbel93 7:e11d6545731a 49 const TxStatus txStatus = xbee->send_data_to_coordinator(data, 2);
vinbel93 0:58bb278068d6 50 }
vinbel93 8:096edc8e8679 51
SonSenpai 5:9505aed3788c 52 void envoi_donnees (void const *args) {
SonSenpai 5:9505aed3788c 53 capt_lock.lock();
vinbel93 11:c37c1c02a798 54 uint8_t data[2];
vinbel93 7:e11d6545731a 55 data[0] = (capt_1 << 7) | (capt_2 << 6) | (capt_3 << 5) | (capt_4 << 4) | (capt_5 << 3) | (capt_6 << 2);
vinbel93 7:e11d6545731a 56 data[1] = (GP2D12_value & 0xFF00) >> 8;
vinbel93 8:096edc8e8679 57
vinbel93 8:096edc8e8679 58 capt_lock.unlock();
vinbel93 11:c37c1c02a798 59
vinbel93 7:e11d6545731a 60 send_data_to_coordinator(data);
SonSenpai 5:9505aed3788c 61 }
vinbel93 8:096edc8e8679 62
SonSenpai 5:9505aed3788c 63 int main (void) {
SonSenpai 5:9505aed3788c 64 xbee = new XBeeZB(p13, p14, NC, NC, NC, 9600);
SonSenpai 5:9505aed3788c 65
SonSenpai 5:9505aed3788c 66 RtosTimer readTimer(lecture_capteurs, osTimerPeriodic);
SonSenpai 5:9505aed3788c 67 RtosTimer sendTimer(envoi_donnees, osTimerPeriodic);
SonSenpai 5:9505aed3788c 68
vinbel93 8:096edc8e8679 69 readTimer.start(10);
vinbel93 8:096edc8e8679 70 sendTimer.start(10);
SonSenpai 5:9505aed3788c 71
SonSenpai 5:9505aed3788c 72 wait(osWaitForever);
vinbel93 8:096edc8e8679 73 }
vinbel93 8:096edc8e8679 74