Liqun Wu / Mbed 2 deprecated 90418_mbed_controller

Dependencies:   mbed

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?

UserRevisionLine numberNew 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