LVTTL HW Trigger with control via virtual Serial over USB. Works well with NUCLEO boards.

Dependencies:   mbed

Revision:
1:26ff6101d6d5
Parent:
0:46a9ecc2d2b8
--- a/main.cpp	Fri Jan 22 10:33:36 2016 +0000
+++ b/main.cpp	Tue Sep 27 12:17:50 2016 +0000
@@ -1,50 +1,64 @@
 /*
-* ---------------
-* TriggerNiNo 1.0
-* ---------------
-*
+* ----------------------------
+* TriggerNiNo 1.0 (2016-09-26)
+* ----------------------------
 * LVTTL HW Trigger with control via virtual Serial over USB.
 * Works well with NUCLEO-F031K6 and NUCLEO-F411RE.
 *
-* Copyright (C) <2015> Martin Wolker <neolker@gmail.com>
+* Copyright (c) 2016, Martin Wolker (neolker@gmail.com)
+* All rights reserved.
 *
-* TriggerNiNo is free software: you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation, either version 3 of the License, or
-* (at your option) any later version.
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     - Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     - Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     - Neither the name of Martin Wolker nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
 *
-* You should have received a copy of the GNU General Public License
-* If not, see <http://www.gnu.org/licenses/>.
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL MARTIN WOLKER BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-#include "mbed.h"                         //mbed official library.
-#define TRIGGER_PULSE_LENGTH_MS   500     //Length of the trigger pulse in ms.
+#include "mbed.h"
+#define TRIGGER_PULSE_LENGTH_MS   500
 
-Serial pc(USBTX, USBRX);                  //Virtual Serial over USB with 9600 baud.
-DigitalOut trigger_output_positive(D2);   //Declaration of positive trigger output.
-DigitalOut trigger_output_negative(D3);   //Declaration of negative trigger output.
-DigitalOut trigger_indication(LED1);      //Declaration of indication LED.
+Serial pc(USBTX, USBRX);
+DigitalOut trigger_output_positive(D2);
+DigitalOut trigger_output_negative(D3);
+DigitalOut trigger_indication(LED1);
 
 void trigger(void)
 {
-    trigger_output_positive =! trigger_output_positive;   //Change the state of the positive output.
-    trigger_output_negative =! trigger_output_negative;   //Change the state of the negative output.
-    trigger_indication =! trigger_indication;             //Change the state of the indication LED.
+    trigger_output_positive =! trigger_output_positive;
+    trigger_output_negative =! trigger_output_negative;
+    trigger_indication =! trigger_indication;
 }
 
 void interrupt(void)
 {
-    pc.getc();                          //Get the character from the buffer and clear.
-    trigger();                          //Trigger ON.
-    wait_ms(TRIGGER_PULSE_LENGTH_MS);   //Waiting when the trigger pulse is ON.
-    trigger();                          //Trigger OFF.
+    pc.getc();
+    trigger();
+    wait_ms(TRIGGER_PULSE_LENGTH_MS);
+    trigger();
 }
 
 int main(void)
 {
-    pc.attach(&interrupt);         //Call the interrupt, when any data are received from PC.
-    trigger_output_positive = 0;   //Initial state of positive output in idle state.
-    trigger_output_negative = 1;   //Initial state of negative output in idle state.
-    trigger_indication = 0;        //Initial state of LED in idle state is OFF.
-    while(1) {}                    //Infinity loop.
+    pc.attach(&interrupt);
+    trigger_output_positive = 0;
+    trigger_output_negative = 1;
+    trigger_indication = 0;
+    while(1) {}
 }
\ No newline at end of file