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.
test_vector.h@0:be95bfb06686, 2022-01-17 (annotated)
- Committer:
- wuliqunyy
- Date:
- Mon Jan 17 13:20:09 2022 +0000
- Revision:
- 0:be95bfb06686
a working non_flat + adc_didt for ehp regulation version
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| wuliqunyy | 0:be95bfb06686 | 1 | #ifndef TEST_VECTOR_H |
| wuliqunyy | 0:be95bfb06686 | 2 | #define TEST_VECTOR_H |
| wuliqunyy | 0:be95bfb06686 | 3 | |
| wuliqunyy | 0:be95bfb06686 | 4 | |
| wuliqunyy | 0:be95bfb06686 | 5 | //base abstract class for all test vectors |
| wuliqunyy | 0:be95bfb06686 | 6 | |
| wuliqunyy | 0:be95bfb06686 | 7 | #include "mbed.h" |
| wuliqunyy | 0:be95bfb06686 | 8 | |
| wuliqunyy | 0:be95bfb06686 | 9 | enum captureMode { rise_rise, rise_fall, fall_rise, fall_fall, both }; |
| wuliqunyy | 0:be95bfb06686 | 10 | |
| wuliqunyy | 0:be95bfb06686 | 11 | class test_vector { |
| wuliqunyy | 0:be95bfb06686 | 12 | |
| wuliqunyy | 0:be95bfb06686 | 13 | public: |
| wuliqunyy | 0:be95bfb06686 | 14 | test_vector(PinName pin, captureMode mode, uint32_t bufferSize); |
| wuliqunyy | 0:be95bfb06686 | 15 | ~test_vector(); |
| wuliqunyy | 0:be95bfb06686 | 16 | virtual void configure()=0; |
| wuliqunyy | 0:be95bfb06686 | 17 | virtual void run()=0; |
| wuliqunyy | 0:be95bfb06686 | 18 | virtual void stop()=0; |
| wuliqunyy | 0:be95bfb06686 | 19 | virtual uint32_t* getResult()=0; |
| wuliqunyy | 0:be95bfb06686 | 20 | virtual char* getResultStatus()=0; |
| wuliqunyy | 0:be95bfb06686 | 21 | virtual void release()=0; |
| wuliqunyy | 0:be95bfb06686 | 22 | virtual uint32_t getBufferSize()=0; |
| wuliqunyy | 0:be95bfb06686 | 23 | |
| wuliqunyy | 0:be95bfb06686 | 24 | void configureTimer(); |
| wuliqunyy | 0:be95bfb06686 | 25 | void startTimer(); |
| wuliqunyy | 0:be95bfb06686 | 26 | void stopTimer(); |
| wuliqunyy | 0:be95bfb06686 | 27 | |
| wuliqunyy | 0:be95bfb06686 | 28 | void setUpTimerBuffer(); |
| wuliqunyy | 0:be95bfb06686 | 29 | void releaseTimerBuffer(); |
| wuliqunyy | 0:be95bfb06686 | 30 | uint32_t getTimerBufferSize(); |
| wuliqunyy | 0:be95bfb06686 | 31 | uint32_t* getTimerBufferPointer(); |
| wuliqunyy | 0:be95bfb06686 | 32 | bool getTimerBufferFull(); |
| wuliqunyy | 0:be95bfb06686 | 33 | uint32_t getPeriodIdx(); |
| wuliqunyy | 0:be95bfb06686 | 34 | uint32_t getCurrentTimerBufferValue(); |
| wuliqunyy | 0:be95bfb06686 | 35 | |
| wuliqunyy | 0:be95bfb06686 | 36 | private: |
| wuliqunyy | 0:be95bfb06686 | 37 | PinName _pinName; |
| wuliqunyy | 0:be95bfb06686 | 38 | InterruptIn _interrupt; |
| wuliqunyy | 0:be95bfb06686 | 39 | |
| wuliqunyy | 0:be95bfb06686 | 40 | uint32_t _timer_value; |
| wuliqunyy | 0:be95bfb06686 | 41 | uint32_t _period; |
| wuliqunyy | 0:be95bfb06686 | 42 | uint32_t* _ptr_period_arr; |
| wuliqunyy | 0:be95bfb06686 | 43 | uint32_t _period_idx; |
| wuliqunyy | 0:be95bfb06686 | 44 | captureMode _mode; |
| wuliqunyy | 0:be95bfb06686 | 45 | |
| wuliqunyy | 0:be95bfb06686 | 46 | uint32_t _bufferSize; |
| wuliqunyy | 0:be95bfb06686 | 47 | bool _bufferFull; |
| wuliqunyy | 0:be95bfb06686 | 48 | void _handlePinRiseIRQ(); |
| wuliqunyy | 0:be95bfb06686 | 49 | void _handlePinFallIRQ(); |
| wuliqunyy | 0:be95bfb06686 | 50 | void _sampleCaptureTimer(); |
| wuliqunyy | 0:be95bfb06686 | 51 | void _savePeriod(); |
| wuliqunyy | 0:be95bfb06686 | 52 | }; |
| wuliqunyy | 0:be95bfb06686 | 53 | |
| wuliqunyy | 0:be95bfb06686 | 54 | #endif |
