You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#pragma once
#include <functional>
#include "mutex.hpp"
#include "zbasic.h"
#ifdef HAL_ADC_MODULE_ENABLED
namespace iflytop { using namespace std; class ZADC { private: ADC_HandleTypeDef* m_hadc1 = nullptr; int32_t m_channel = 0; int32_t m_samplingTime = ADC_SAMPLETIME_480CYCLES; bool inited = false;
zmutex m_mutex = {"ZADC"}; int32_t m_cacheVal = 0; const char* m_name = "not set";
public: /**
* @brief * * @param hadc1 adc handle * @param channel * ADC_CHANNEL_0 * ADC_CHANNEL_1 * ADC_CHANNEL_2 * ADC_CHANNEL_3 * ADC_CHANNEL_4 * ADC_CHANNEL_5 * ADC_CHANNEL_6 * ADC_CHANNEL_7 * ADC_CHANNEL_8 * ADC_CHANNEL_9 * ADC_CHANNEL_10 * ADC_CHANNEL_11 * ADC_CHANNEL_12 * ADC_CHANNEL_13 * ADC_CHANNEL_14 * ADC_CHANNEL_15 * ADC_CHANNEL_16 * ADC_CHANNEL_17 * ADC_CHANNEL_18 * @param m_samplingTime * ADC_SAMPLETIME_3CYCLES * ADC_SAMPLETIME_15CYCLES * ADC_SAMPLETIME_28CYCLES * ADC_SAMPLETIME_56CYCLES * ADC_SAMPLETIME_84CYCLES * ADC_SAMPLETIME_112CYCLES * ADC_SAMPLETIME_144CYCLES * ADC_SAMPLETIME_480CYCLES * */
void initialize(const char* name, ADC_HandleTypeDef* hadc1, int32_t channel, int32_t samplingTime = ADC_SAMPLETIME_480CYCLES);
bool isInited() { return inited; }
int32_t get_adc_value(); int32_t get_adc_af_filter();
void setCacheVal(int32_t val); int32_t getCacheVal();
void updateAdcValToCache(); }; } // namespace iflytop
#endif
|