Projet S5 info - Beginner version
Dependencies: XBeeLib mbed-rtos mbed
Fork of Projet by
main.cpp@8:096edc8e8679, 2016-04-11 (annotated)
- Committer:
- vinbel93
- Date:
- Mon Apr 11 20:37:39 2016 +0000
- Revision:
- 8:096edc8e8679
- Parent:
- 7:e11d6545731a
- Child:
- 9:6959e3ebe7f2
Final version
Who changed what in which revision?
User | Revision | Line number | New 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 | 8:096edc8e8679 | 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 | 7:e11d6545731a | 54 | uint8_t data[3]; |
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 | 7:e11d6545731a | 59 | pc.printf("%x \n\r", GP2D12_value); |
vinbel93 | 7:e11d6545731a | 60 | pc.printf("%02x %02x %02x\n\r", data[0], data[1], data[2]); |
SonSenpai | 5:9505aed3788c | 61 | |
vinbel93 | 7:e11d6545731a | 62 | send_data_to_coordinator(data); |
SonSenpai | 5:9505aed3788c | 63 | } |
vinbel93 | 8:096edc8e8679 | 64 | |
SonSenpai | 5:9505aed3788c | 65 | int main (void) { |
SonSenpai | 5:9505aed3788c | 66 | xbee = new XBeeZB(p13, p14, NC, NC, NC, 9600); |
SonSenpai | 5:9505aed3788c | 67 | |
SonSenpai | 5:9505aed3788c | 68 | RtosTimer readTimer(lecture_capteurs, osTimerPeriodic); |
SonSenpai | 5:9505aed3788c | 69 | RtosTimer sendTimer(envoi_donnees, osTimerPeriodic); |
SonSenpai | 5:9505aed3788c | 70 | |
vinbel93 | 8:096edc8e8679 | 71 | readTimer.start(10); |
vinbel93 | 8:096edc8e8679 | 72 | sendTimer.start(10); |
SonSenpai | 5:9505aed3788c | 73 | |
SonSenpai | 5:9505aed3788c | 74 | wait(osWaitForever); |
vinbel93 | 8:096edc8e8679 | 75 | } |
vinbel93 | 8:096edc8e8679 | 76 |