Treehopper C++ API
HardwarePwmManager.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Treehopper.h"
4 #include "HardwarePwmFrequency.h"
5 #include "HardwarePwm.h"
6 #include "Pin.h"
7 
8 namespace Treehopper {
9  class TreehopperUsb;
10 
14 
20  friend class HardwarePwm;
21 
22  public:
24 
26  void frequency(HardwarePwmFrequency value);
27 
29  HardwarePwmFrequency frequency();
30 
31  protected:
32  enum class EnableMode : uint8_t {
33  None,
34  Pin7,
35  Pin7_Pin8,
36  Pin7_Pin8_Pin9
37  };
38 
39  struct Configuration {
40  uint8_t opcode;
41  EnableMode mode;
42  HardwarePwmFrequency frequency;
43  uint8_t DutyCycle7_Lo;
44  uint8_t DutyCycle7_Hi;
45  uint8_t DutyCycle8_Lo;
46  uint8_t DutyCycle8_Hi;
47  uint8_t DutyCycle9_Lo;
48  uint8_t DutyCycle9_Hi;
49  } config;
50 
51  TreehopperUsb &board;
52 
53  void sendConfig();
54 
55  void updateDutyCycle(HardwarePwm &pin);
56 
57  void start(HardwarePwm &pin);
58 
59  void stop(HardwarePwm &pin);
60  };
61 }
Built-in hardware PWM channels.
Definition: HardwarePwm.h:19
The core class for communicating with Treehopper USB boards.
Definition: TreehopperUsb.h:59
Definition: AdcPin.h:3
enum TREEHOPPER_API HardwarePwmFrequency
Frequencies supported by HardwarePwm.
Definition: HardwarePwmFrequency.h:7
Hardware PWM manager
Definition: HardwarePwmManager.h:19
#define TREEHOPPER_API
Definition: Treehopper.h:17