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
main.cpp@2:06ec0e48f564, 2021-02-04 (annotated)
- 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?
User | Revision | Line number | New 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 | } |