Ce programme correspond a la cellule d'arrivee du systeme "Laser Gate Timer" developpe par Tanguy KESSELY et Dorian VOYDIE. Il utilise une carte Nucleo F411, un shield BLE IDB05A1 et un PCB fait maison

Dependencies:   mbed

Committer:
dorianvoydie
Date:
Thu Feb 04 16:09:48 2021 +0000
Revision:
2:06ec0e48f564
Parent:
1:417efc7560c8
Ce programme correspond a la cellule d'arrivee du systeme "Laser Gate Timer" developpe par Tanguy KESSELY et Dorian VOYDIE. Il utilise une carte Nucleo F411, un shield BLE IDB05A1 et un PCB fait maison

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dorianvoydie 0:badac4c5dd91 1 #include "mbed.h"
dorianvoydie 2:06ec0e48f564 2 ///////////Init Device/////////////////
dorianvoydie 2:06ec0e48f564 3 Serial device(D8, D2);
dorianvoydie 2:06ec0e48f564 4 Serial pc(USBTX, USBRX);
dorianvoydie 2:06ec0e48f564 5 /////////////////////////////////////
dorianvoydie 0:badac4c5dd91 6
dorianvoydie 0:badac4c5dd91 7 ///////////Init STM32 pins///////////
dorianvoydie 1:417efc7560c8 8 DigitalOut myLed(LED1);
dorianvoydie 2:06ec0e48f564 9 DigitalOut compteur(A3);
dorianvoydie 2:06ec0e48f564 10 DigitalOut laser(A5);
dorianvoydie 2:06ec0e48f564 11 InterruptIn photodiode(A4);
dorianvoydie 1:417efc7560c8 12 InterruptIn my_button(USER_BUTTON); //User1
dorianvoydie 0:badac4c5dd91 13 /////////////////////////////////////
dorianvoydie 0:badac4c5dd91 14
dorianvoydie 0:badac4c5dd91 15
dorianvoydie 0:badac4c5dd91 16 /////////COMMUNICATION///////////////
dorianvoydie 2:06ec0e48f564 17 void device_nodetect()
dorianvoydie 0:badac4c5dd91 18 {
dorianvoydie 2:06ec0e48f564 19 compteur = 1;
dorianvoydie 2:06ec0e48f564 20 wait(0.001);
dorianvoydie 2:06ec0e48f564 21 compteur = 0;
dorianvoydie 2:06ec0e48f564 22 for( int h = 0; h < 2; h++ ) {
dorianvoydie 2:06ec0e48f564 23 device.putc(0xBB);
dorianvoydie 2:06ec0e48f564 24 device.putc(0xBB);
dorianvoydie 2:06ec0e48f564 25 device.putc(0xBB);
dorianvoydie 2:06ec0e48f564 26 device.putc(0xBC);
dorianvoydie 2:06ec0e48f564 27 device.putc(0xBC);
dorianvoydie 2:06ec0e48f564 28 device.putc(0xBC);
dorianvoydie 2:06ec0e48f564 29 device.putc(0xBD);
dorianvoydie 2:06ec0e48f564 30 device.putc(0xBD);
dorianvoydie 2:06ec0e48f564 31 device.putc(0xBD);
dorianvoydie 2:06ec0e48f564 32 }
dorianvoydie 2:06ec0e48f564 33
dorianvoydie 0:badac4c5dd91 34 }
dorianvoydie 2:06ec0e48f564 35 void device_detect()
dorianvoydie 0:badac4c5dd91 36 {
dorianvoydie 2:06ec0e48f564 37 compteur = 1;
dorianvoydie 2:06ec0e48f564 38 wait(0.001);
dorianvoydie 2:06ec0e48f564 39 compteur = 0;
dorianvoydie 2:06ec0e48f564 40 for( int h = 0; h < 10; h++ ) {
dorianvoydie 2:06ec0e48f564 41 device.putc(0xCC);
dorianvoydie 2:06ec0e48f564 42 }
dorianvoydie 0:badac4c5dd91 43 }
dorianvoydie 0:badac4c5dd91 44 /////////////////////////////////////
dorianvoydie 0:badac4c5dd91 45
dorianvoydie 0:badac4c5dd91 46
dorianvoydie 0:badac4c5dd91 47 int main(int, char**)
dorianvoydie 0:badac4c5dd91 48 {
dorianvoydie 2:06ec0e48f564 49 device.baud(2400);
dorianvoydie 2:06ec0e48f564 50 my_button.fall(&device_nodetect);
dorianvoydie 2:06ec0e48f564 51 photodiode.rise(&device_detect);
dorianvoydie 2:06ec0e48f564 52 photodiode.fall(&device_nodetect);
dorianvoydie 2:06ec0e48f564 53 laser = 1;
dorianvoydie 2:06ec0e48f564 54
dorianvoydie 0:badac4c5dd91 55 while (1) {
dorianvoydie 2:06ec0e48f564 56 //while RF device is receiving data
dorianvoydie 2:06ec0e48f564 57 //RF Transmit Code
dorianvoydie 2:06ec0e48f564 58 //Send 10101010 pattern when idle to keep receiver in sync and locked to transmitter
dorianvoydie 2:06ec0e48f564 59 //When receiver loses the sync lock (Around 30MS with no data change seen) it starts sending out noise
dorianvoydie 2:06ec0e48f564 60 device.putc(0xAA);
dorianvoydie 2:06ec0e48f564 61 for( int h = 0; h < 10; h++ ) {
dorianvoydie 2:06ec0e48f564 62
dorianvoydie 2:06ec0e48f564 63 device.putc('x');
dorianvoydie 2:06ec0e48f564 64 }
dorianvoydie 2:06ec0e48f564 65 wait(1);
dorianvoydie 0:badac4c5dd91 66 }
dorianvoydie 2:06ec0e48f564 67 }