Projet S5 info - Beginner version

Dependencies:   XBeeLib mbed-rtos mbed

Fork of Projet by Vincent Belanger

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

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 DigitalIn capteur_1(p23);
00012 DigitalIn capteur_2(p24);
00013 DigitalIn capteur_3(p25);
00014 DigitalIn capteur_4(p26);
00015 DigitalIn capteur_5(p27);
00016 DigitalIn capteur_6(p28);
00017  
00018 Mutex capt_lock;
00019  
00020 bool capt_1;
00021 bool capt_2;
00022 bool capt_3;
00023 bool capt_4;
00024 bool capt_5;
00025 bool capt_6;
00026  
00027 /* lecture des capteurs à partir des broches du mbed : p15, p16, p17, 19, 20 21*/
00028  
00029 void lecture_capteurs (void const *args){
00030     capt_lock.lock();
00031     
00032     capt_1=capteur_1.read();
00033     capt_2=capteur_2.read();
00034     capt_3=capteur_3.read();
00035     capt_4=capteur_4.read();
00036     capt_5=capteur_5.read();
00037     capt_6=capteur_6.read();
00038     
00039     capt_lock.unlock();
00040 }
00041  
00042 void send_data_to_coordinator(const uint8_t* data)
00043 { 
00044     const TxStatus txStatus = xbee->send_data_to_coordinator(data, 1);
00045 }
00046  
00047 void envoi_donnees (void const *args) {
00048     capt_lock.lock();
00049     uint8_t data[1];
00050     data[0] = (capt_1 << 7) | (capt_2 << 6) | (capt_3 << 5) | (capt_4 << 4) | (capt_5 << 3) | (capt_6 << 2);
00051 
00052     capt_lock.unlock();
00053 
00054     send_data_to_coordinator(data);
00055 } 
00056  
00057 int main (void) {
00058     xbee = new XBeeZB(p13, p14, NC, NC, NC, 9600);
00059     
00060     RtosTimer readTimer(lecture_capteurs, osTimerPeriodic);
00061     RtosTimer sendTimer(envoi_donnees, osTimerPeriodic);
00062     
00063     readTimer.start(10);
00064     sendTimer.start(10);
00065     
00066     wait(osWaitForever);
00067 }
00068