This is the vcdMaker demo project. See http://vcdmaker.org for details. vcdMaker is supposed to help engineers to debug their applications and systems. It transforms text log files into the VCD format which can be easily displayed as a waveform.
Dependencies: mbed vcdLogger vcdSignal
Signals/accelerometer.cpp@3:6d5e16097db0, 2016-12-07 (annotated)
- Committer:
- ketjow
- Date:
- Wed Dec 07 09:16:38 2016 +0000
- Revision:
- 3:6d5e16097db0
- Parent:
- 2:a13cde5c679c
Sync signal added
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ketjow | 1:446154224f92 | 1 | /*! |
ketjow | 1:446154224f92 | 2 | @file accelerometer.cpp |
ketjow | 1:446154224f92 | 3 | |
ketjow | 1:446154224f92 | 4 | The implementation of the accelerometer signal class. |
ketjow | 1:446154224f92 | 5 | |
ketjow | 1:446154224f92 | 6 | @par Full Description |
ketjow | 1:446154224f92 | 7 | The implementation of the accelerometer signal class. |
ketjow | 1:446154224f92 | 8 | |
ketjow | 1:446154224f92 | 9 | @if REVISION_HISTORY_INCLUDED |
ketjow | 1:446154224f92 | 10 | @par Edit History |
ketjow | 1:446154224f92 | 11 | @li [0] wojciech.rynczuk@wp.pl 20-JAN-2015 Initial file revision. |
ketjow | 2:a13cde5c679c | 12 | @li [1] wojciech.rynczuk@wp.pl 04-MAR-2016 Fixed real printing. |
ketjow | 1:446154224f92 | 13 | @endif |
ketjow | 1:446154224f92 | 14 | |
ketjow | 1:446154224f92 | 15 | @ingroup Signal |
ketjow | 1:446154224f92 | 16 | |
ketjow | 2:a13cde5c679c | 17 | The MIT License (MIT) |
ketjow | 2:a13cde5c679c | 18 | Copyright (c) 2016 Wojciech Rynczuk |
ketjow | 1:446154224f92 | 19 | |
ketjow | 1:446154224f92 | 20 | */ |
ketjow | 1:446154224f92 | 21 | |
ketjow | 0:9a59cffaafad | 22 | #include "accelerometer.hpp" |
ketjow | 0:9a59cffaafad | 23 | |
ketjow | 0:9a59cffaafad | 24 | #define MMA8451_I2C_ADDRESS (0x1d<<1) |
ketjow | 0:9a59cffaafad | 25 | |
ketjow | 0:9a59cffaafad | 26 | Accelerometer::Accelerometer(const string& name, Logger& logger) : Signal(name, 32, logger) |
ketjow | 0:9a59cffaafad | 27 | { |
ketjow | 0:9a59cffaafad | 28 | m_Accelerometer = new MMA8451Q(PTE25, PTE24, MMA8451_I2C_ADDRESS); |
ketjow | 0:9a59cffaafad | 29 | m_Filter = 1; |
ketjow | 0:9a59cffaafad | 30 | m_AccXPrev = 0; |
ketjow | 0:9a59cffaafad | 31 | m_AccYPrev = 0; |
ketjow | 0:9a59cffaafad | 32 | m_AccZPrev = 0; |
ketjow | 0:9a59cffaafad | 33 | m_AccXCurr = 0; |
ketjow | 0:9a59cffaafad | 34 | m_AccYCurr = 0; |
ketjow | 0:9a59cffaafad | 35 | m_AccZCurr = 0; |
ketjow | 0:9a59cffaafad | 36 | } |
ketjow | 0:9a59cffaafad | 37 | |
ketjow | 0:9a59cffaafad | 38 | Accelerometer::~Accelerometer() |
ketjow | 0:9a59cffaafad | 39 | { |
ketjow | 0:9a59cffaafad | 40 | delete m_Accelerometer; |
ketjow | 0:9a59cffaafad | 41 | } |
ketjow | 0:9a59cffaafad | 42 | |
ketjow | 0:9a59cffaafad | 43 | void Accelerometer::PrintState() |
ketjow | 0:9a59cffaafad | 44 | { |
ketjow | 0:9a59cffaafad | 45 | string suffix("AccX"); |
ketjow | 2:a13cde5c679c | 46 | string msg(""); |
ketjow | 0:9a59cffaafad | 47 | int32_t time_ref = 0; |
ketjow | 0:9a59cffaafad | 48 | |
ketjow | 0:9a59cffaafad | 49 | m_AccXCurr = m_Accelerometer->getAccX(); |
ketjow | 0:9a59cffaafad | 50 | m_AccYCurr = m_Accelerometer->getAccY(); |
ketjow | 0:9a59cffaafad | 51 | m_AccZCurr = m_Accelerometer->getAccZ(); |
ketjow | 0:9a59cffaafad | 52 | if ( (CheckFilter()) || \ |
ketjow | 0:9a59cffaafad | 53 | (fabs(m_AccXCurr - m_AccXPrev) > 0.1) || \ |
ketjow | 0:9a59cffaafad | 54 | (fabs(m_AccYCurr - m_AccYPrev) > 0.1) || \ |
ketjow | 0:9a59cffaafad | 55 | (fabs(m_AccZCurr - m_AccZPrev) > 0.1)) |
ketjow | 0:9a59cffaafad | 56 | { |
ketjow | 0:9a59cffaafad | 57 | PrintReal(m_AccXCurr, suffix, msg, time_ref); |
ketjow | 0:9a59cffaafad | 58 | suffix = "AccY"; |
ketjow | 0:9a59cffaafad | 59 | PrintReal(m_AccYCurr, suffix, msg, time_ref); |
ketjow | 0:9a59cffaafad | 60 | suffix = "AccZ"; |
ketjow | 0:9a59cffaafad | 61 | PrintReal(m_AccZCurr, suffix, msg, time_ref); |
ketjow | 0:9a59cffaafad | 62 | m_AccXPrev = m_AccXCurr; |
ketjow | 0:9a59cffaafad | 63 | m_AccYPrev = m_AccYCurr; |
ketjow | 0:9a59cffaafad | 64 | m_AccZPrev = m_AccZCurr; |
ketjow | 0:9a59cffaafad | 65 | } |
ketjow | 0:9a59cffaafad | 66 | } |