Projet S5 info - Advanced version
Dependencies: XBeeLib mbed-rtos mbed
Fork of Capteurs-Beginner by
main.cpp
00001 #include "mbed.h" 00002 #include "rtos.h" 00003 #include "XBeeLib.h" 00004 00005 using namespace XBeeLib; 00006 00007 Serial pc(USBTX, USBRX); 00008 00009 XBeeZB* xbee; 00010 00011 AnalogIn GP2D12(p15); 00012 DigitalIn capteur_1(p23); 00013 DigitalIn capteur_2(p24); 00014 DigitalIn capteur_3(p25); 00015 DigitalIn capteur_4(p26); 00016 DigitalIn capteur_5(p27); 00017 DigitalIn capteur_6(p28); 00018 00019 Mutex capt_lock; 00020 00021 bool capt_1; 00022 bool capt_2; 00023 bool capt_3; 00024 bool capt_4; 00025 bool capt_5; 00026 bool capt_6; 00027 00028 uint16_t GP2D12_value; 00029 00030 /* lecture des capteurs à partir des broches du mbed : p15, p16, p17, 19, 20 21*/ 00031 00032 void lecture_capteurs (void const *args){ 00033 capt_lock.lock(); 00034 00035 capt_1=capteur_1.read(); 00036 capt_2=capteur_2.read(); 00037 capt_3=capteur_3.read(); 00038 capt_4=capteur_4.read(); 00039 capt_5=capteur_5.read(); 00040 capt_6=capteur_6.read(); 00041 00042 GP2D12_value = GP2D12.read_u16(); 00043 00044 capt_lock.unlock(); 00045 } 00046 00047 void send_data_to_coordinator(const uint8_t* data) 00048 { 00049 const TxStatus txStatus = xbee->send_data_to_coordinator(data, 2); 00050 } 00051 00052 void envoi_donnees (void const *args) { 00053 capt_lock.lock(); 00054 uint8_t data[2]; 00055 data[0] = (capt_1 << 7) | (capt_2 << 6) | (capt_3 << 5) | (capt_4 << 4) | (capt_5 << 3) | (capt_6 << 2); 00056 data[1] = (GP2D12_value & 0xFF00) >> 8; 00057 00058 capt_lock.unlock(); 00059 00060 send_data_to_coordinator(data); 00061 } 00062 00063 int main (void) { 00064 xbee = new XBeeZB(p13, p14, NC, NC, NC, 9600); 00065 00066 RtosTimer readTimer(lecture_capteurs, osTimerPeriodic); 00067 RtosTimer sendTimer(envoi_donnees, osTimerPeriodic); 00068 00069 readTimer.start(10); 00070 sendTimer.start(10); 00071 00072 wait(osWaitForever); 00073 } 00074
Generated on Tue Jul 26 2022 16:41:09 by 1.7.2