EE445M RTOS
Taken at the University of Texas Spring 2015
adcpp.hpp
Go to the documentation of this file.
1 /* -*- mode: c++; c-basic-offset: 4; */
2 #ifndef __adcpp__
3 #define __adcpp__
4 
5 #include "semaphorepp.hpp"
6 #include "interruptable.hpp"
7 
8 #include <stdbool.h>
9 #include <stdint.h>
10 
11 #define TIMER_KNOWN
12 #ifdef TIMER_KNOWN
13 #include "timerpp.hpp"
14 #endif
15 
16 typedef uint32_t memory_address_t;
17 
18 class adc : public interruptable {
19 private:
20  static const uint8_t default_priority = 0;
21  static const uint8_t max_num_sequencer_steps = 8;
22 
23 public:
25  uint8_t sequencer;
26  uint8_t channel_count;
27  uint32_t configuration;
28  uint8_t trigger_source;
30 
32  adc();
33  adc(memory_address_t adc_base, uint8_t adc_trigger_source, uint8_t adc_sequencer);
34  void configure_sequence(uint32_t sequencer_configuration);
35  void configure_timer_interrupt(uint32_t timer_base, uint32_t timer_subtimer);
36 #ifdef TIMER_KNOWN
38 #endif
39 
40  virtual void start(void);
41  virtual void stop(void);
42  virtual uint32_t ack(void);
43  void sample(void);
44  uint32_t get_sample(uint8_t i);
45 };
46 
47 #endif /* __ADC__ */
48 
49 /* Local Variables: */
50 /* firestarter: (compile "make -k -j32 -C ~/workspace/ee445m-labs/build/") */
51 /* End: */
uint32_t memory_address_t
Definition: adcpp.hpp:16
uint32_t configuration
Definition: adcpp.hpp:27
static const uint8_t max_num_sequencer_steps
Definition: adcpp.hpp:21
uint32_t sequencer_data[max_num_sequencer_steps]
Definition: adcpp.hpp:29
virtual void stop(void)
Definition: adcpp.cpp:79
void configure_timer_interrupt(uint32_t timer_base, uint32_t timer_subtimer)
Definition: adcpp.cpp:49
static const uint8_t default_priority
Definition: adcpp.hpp:20
adc()
Definition: adcpp.cpp:13
uint8_t sequencer
Definition: adcpp.hpp:25
uint32_t get_sample(uint8_t i)
Definition: adcpp.cpp:91
void sample(void)
Definition: adcpp.cpp:86
void configure_sequence(uint32_t sequencer_configuration)
Definition: adcpp.cpp:55
virtual void start(void)
Definition: adcpp.cpp:72
memory_address_t base
Definition: adcpp.hpp:24
virtual uint32_t ack(void)
Definition: adcpp.cpp:95
uint8_t trigger_source
Definition: adcpp.hpp:28
Definition: adcpp.hpp:18
uint8_t channel_count
Definition: adcpp.hpp:26