aboutsummaryrefslogtreecommitdiffstats
path: root/source/adc.hpp
diff options
context:
space:
mode:
authorclyne <clyne@bitgloo.com>2021-03-21 16:34:21 -0400
committerGitHub <noreply@github.com>2021-03-21 16:34:21 -0400
commit9b926b81ef1e8a4c7266494ae2a1369380e01b35 (patch)
tree746095fa69eccccdc1c2830fdd0c06bac01848f5 /source/adc.hpp
parente080a26651f90c88176140d63a74c93c2f4041a2 (diff)
parenta4f1482a8b23d5f761f60d6f3821c84190d89e2f (diff)
Merge pull request #3 from tcsullivan/stm32h7
Stm32h7
Diffstat (limited to 'source/adc.hpp')
-rw-r--r--source/adc.hpp29
1 files changed, 9 insertions, 20 deletions
diff --git a/source/adc.hpp b/source/adc.hpp
index 5f9dc23..24a7fff 100644
--- a/source/adc.hpp
+++ b/source/adc.hpp
@@ -13,6 +13,7 @@
#define STMDSP_ADC_HPP_
#include "hal.h"
+#include "sclock.hpp"
#include <array>
@@ -21,42 +22,30 @@ class ADC
public:
using Operation = void (*)(adcsample_t *buffer, size_t count);
- enum class Rate : int {
- R8K = 0,
- R16K,
- R20K,
- R32K,
- R48K,
- R96K
- };
-
static void begin();
static void start(adcsample_t *buffer, size_t count, Operation operation);
static void stop();
- static void setRate(Rate rate);
- static void setOperation(Operation operation);
+ static adcsample_t readAlt(unsigned int id);
- static int getRate();
- static unsigned int getTimerDivisor();
+ static void setRate(SClock::Rate rate);
+ static void setOperation(Operation operation);
private:
static ADCDriver *m_driver;
- static GPTDriver *m_timer;
+ static ADCDriver *m_driver2;
static const ADCConfig m_config;
- static /*const*/ ADCConversionGroup m_group_config;
- static const GPTConfig m_timer_config;
-
- static std::array<std::array<uint32_t, 4>, 6> m_rate_presets;
+ static const ADCConfig m_config2;
+ static ADCConversionGroup m_group_config;
+ static ADCConversionGroup m_group_config2;
static adcsample_t *m_current_buffer;
static size_t m_current_buffer_size;
static Operation m_operation;
- static unsigned int m_timer_divisor;
-
+public:
static void conversionCallback(ADCDriver *);
};