Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed vcdLogger vcdSignal
main.cpp
00001 /*! 00002 @file main.cpp 00003 00004 The main vcdMaker demo file. 00005 00006 @par Full Description 00007 The vcdMaker demo. See http://vcdmaker.org for details. 00008 00009 @if REVISION_HISTORY_INCLUDED 00010 @par Edit History 00011 @li [0] wojciech.rynczuk@wp.pl 20-JAN-2015 Initial file revision. 00012 @li [1] wojciech.rynczuk@wp.pl 22-APR-2016 Sync line added. 00013 @endif 00014 00015 @ingroup vcdMakerDemo 00016 00017 The MIT License (MIT) 00018 Copyright (c) 2016 Wojciech Rynczuk 00019 00020 */ 00021 00022 #include "mbed.h" 00023 #include "serialLogger.hpp " 00024 #include "button.hpp " 00025 #include "light.hpp " 00026 #include "slider.hpp " 00027 #include "magnetometer.hpp " 00028 #include "accelerometer.hpp " 00029 #include "sync.hpp" 00030 00031 #define NO_OF_LINES ((uint32_t)75) 00032 #define NO_OF_CHARACTERS ((uint32_t)100) 00033 00034 // Periodic timers 00035 Ticker timer1; 00036 Ticker timer2; 00037 00038 // Button interrupts 00039 InterruptIn sw1_event(PTC3); 00040 InterruptIn sw3_event(PTC12); 00041 InterruptIn sync_event(PTA13); 00042 00043 // Logger 00044 SerialLogger slogger(NO_OF_LINES,NO_OF_CHARACTERS); 00045 Logger* uniLogger; 00046 00047 // Signals 00048 Sync sync("FRDM.Sync",PTA13,slogger); 00049 Button sw1("FRDM.Buttons.SW1",PTC3,slogger); 00050 Button sw3("FRDM.Buttons.SW3",PTC12,slogger); 00051 Light light("FRDM.Sensors.Light",PTE22,slogger); 00052 Slider slider("FRDM.Sensors.Slider", slogger); 00053 Magnetometer magnetometer("FRDM.Sensors.Magnetometer.", slogger); 00054 Accelerometer accelerometer("FRDM.Sensors.Accelerometer.", slogger); 00055 00056 // Time reference 00057 uint32_t time_ref = 0; 00058 00059 void log_slider_accelerometer() 00060 { 00061 slider.PrintState(); 00062 accelerometer.PrintState(); 00063 } 00064 00065 void log_light_magnetometer() 00066 { 00067 light.PrintState(); 00068 magnetometer.PrintState(); 00069 } 00070 00071 void sw1_irq() 00072 { 00073 sw1.PrintState(); 00074 if (0 == sw1) 00075 { 00076 time_ref = uniLogger->GetTime(); 00077 } 00078 else 00079 { 00080 if ((uniLogger->GetTime() - time_ref) > 3000000) 00081 { 00082 if (uniLogger->IsRecording()) 00083 { 00084 uniLogger->StopRecording(); 00085 } 00086 else 00087 { 00088 uniLogger->StartRecording(); 00089 } 00090 } 00091 } 00092 } 00093 00094 void sw3_irq() 00095 { 00096 sw3.PrintState(); 00097 } 00098 00099 void sync_irq() 00100 { 00101 sync.PrintState(); 00102 } 00103 00104 00105 int main() 00106 { 00107 uniLogger = &slogger; 00108 00109 sw1_event.rise(&sw1_irq); 00110 sw3_event.rise(&sw3_irq); 00111 sw1_event.fall(&sw1_irq); 00112 sw3_event.fall(&sw3_irq); 00113 sync_event.fall(&sync_irq); 00114 sync_event.rise(&sync_irq); 00115 timer1.attach_us(&log_light_magnetometer, 50000); 00116 timer2.attach_us(&log_slider_accelerometer, 40000); 00117 00118 while (true) 00119 { 00120 uniLogger->Print(); 00121 }; 00122 }
Generated on Tue Jul 12 2022 21:39:12 by
1.7.2